我想創建一個迭代綁定變量的函數。這是我到目前爲止有:PDO - 迭代綁定變量
function prepareQuery($db, $query, $args) {
// Returns a prepared statement
$stmt = $db->prepare($query);
foreach ($args as $arg => $value) {
$stmt->bindParam($arg, $value);
}
return $stmt;
}
這是我如何使用它:
$stmt = prepareQuery($db, "SELECT * FROM `Licenses` WHERE `verCode`=:verCode", Array(":verCode" => $verCode));
$verCode = "some_string";
$stmt->execute();
while ($info = $stmt->fetch()) {
print_r($info);
}
雖然它不打印任何東西。我知道數據庫條目存在,並且相同的查詢從PHPMyAdmin起作用。所以,我認爲這只是我的函數如何創建綁定的一個問題。我怎樣才能解決這個問題?謝謝!
爲什麼不直接使用'execute'並將參數傳遞給它? – bitWorking
@bit工作中,我經常想知道同樣的事情,因爲90%的人使用PDO似乎認爲他們需要使用bindParam()。我注意到在[PDOStatement :: execute()]文檔(http://us1.php.net/manual/en/pdostatement.execute.php)中,首先描述了bindParam()方法,其次介紹了array-to-execute()方法。我想知道是否有更多的人學習execute()方法,如果它首先被記錄的話? –
也許你應該給$ verCode ** BEFORE **使用它的值... – Olvathar