2016-03-23 2 views
1

У меня есть код, написанный на PHP, который в настоящее время подключается к базе данных MySQL. Я хочу изменить эту связь с DB2 и она в настоящее время выглядит следующим образом:Подключение к DB2 (изменение из MySQL) в PHP

$this->connection = db2_connect($this->db_host, $this->username, $this->pwd); 
if(!$this->connection) { 
    $this->HandleDBError("failed to connect to database"); 
    return false; 
} 

if(!mysql_select_db($this->database, $this->connection)) { 
    $this->HandleDBError('Failed to select database '.$this->database.' See if the database name is correct '); 
    return false; 
} 

if(!mysql_query("SET NAMES 'UTF8'",$this->connection)) { 
    $this->HandleDBError('Error setting utf8 encoding'); 
    return false; 
} 

return true; 

Как вы можете видеть, я сделал небольшое изменение (db2_connect). Что эквивалентно mysql_select_db и mysql_query для DB2? (Да, я знаю, что некоторые из операторов MySQL были обновлены, но будут ли они работать? Какие изменения необходимо сделать?)

ответ

0

1) Первый параметр db2_connect() называется $ database. Это должно дать вам намек на то, что эквивалентно mysql_select_db()

2) Прямой эквивалент maysql_query() является db2_exec(), но вам следует использовать подготовленные заявления, если у вас есть динамические параметры. См. Пример в документации php по адресу db2_prepare():

<?php 
$animals = array(
    array(0, 'cat', 'Pook', 3.2), 
    array(1, 'dog', 'Peaches', 12.3), 
    array(2, 'horse', 'Smarty', 350.0), 
); 

$insert = 'INSERT INTO animals (id, breed, name, weight) 
    VALUES (?, ?, ?, ?)'; 
$stmt = db2_prepare($conn, $insert); 
if ($stmt) { 
    foreach ($animals as $animal) { 
     $result = db2_execute($stmt, $animal); 
    } 
} 
?>