2016-03-23 11 views
1

Şu anda bir MySQL veritabanına bağlanan PHP'de yazılmış bir kod var. Ben DB2 bağlantıyı değiştirmek istiyor ve şu anda şöyle görünür: Gördüğünüz gibiPHP'ye DB2'ye bağlan (MySQL'den geçiş)

$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; 

, ben küçük bir değişiklik (db2_connect) yaptık. DB2 için mysql_select_db ve mysql_query eş değeri nedir? (Evet, bazı MySQL deyimlerinin güncellendiğini biliyorum, ancak hala işe yarayacak mı? Ne değişiklik yapılması gerekiyor?)

cevap

0

1) db2_connect()'un ilk parametresi $ veritabanı olarak adlandırılır. Bu sana maysql_query() doğrudan eşdeğer db2_exec() olduğunu mysql_select_db()

2) eşdeğer ne bir ipucu vermelidir, ancak dinamik parametreleri varsa hazırlanmış deyimleri kullanmayı düşünmelisiniz. Bkz. Örnek, 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); 
    } 
} 
?>