2015-04-23 63 views
1

我正在更新我的數據庫這樣一種更好的方式來執行PDO statments

$db = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'username', 'password'); 
$updo = $db->prepare("UPDATE table SET weight = :weight WHERE height = 28"); 
$updo->execute(array(':weight' => $weight)); 

這是正確的步驟。有任何改進建議嗎?在PHP手冊中他們寫道:這樣

$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); 

準備語句此額外陣列搞糊塗了。我第一次使用PDO,所以想清除一些事情。

+0

@Bob感謝名單。除此之外,還有其他好處嗎? –

+5

這個問題似乎更適合http://codereview.stackexchange.com。 – deceze

回答

0

你的方法可以工作,但是默認以字符串的形式轉義綁定參數。我認爲最好的做法是使用bindParam指定$weight應該是如下整數:

$db = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'username', 'password'); 
$updo = $db->prepare("UPDATE table SET weight = :weight WHERE height = 28"); 
$updo->bindParam(':weight', $weight, PDO::PARAM_INT); 
$updo->execute(); 
相關問題