-1
我不能在這裏找到錯誤:PDO交易+準備,不確定參數
function updateDocKeywords($keywords, $docId) {
try {
$query = 'UPDATE keywords SET :keyname = :keyvalue WHERE document_id = :docId';
$pdo = _openConnection();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->beginTransaction();
$pdoStatement = $pdo->prepare($query);
foreach($keywords as $keyname=>$keyval) {
var_dump($keyname,$keyval,$docId);
$pdoStatement->bindParam(':docId', $docId, PDO::PARAM_STR);
$pdoStatement->bindParam(':keyname', $keyname, PDO::PARAM_STR);
$pdoStatement->bindParam(':keyval', $keyval, PDO::PARAM_STR);
$pdoStatement->execute();
}
$pdo->commit();
return true;
}
catch(PDOException $e) {
$pdo->rollBack();
echo $e->getMessage();
return false;
}
}
在瀏覽器中我得到:
string(5) "Fecha"
string(8) "20141122"
string(4) "5233"
SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
而且在異常處理程序,PHPStorms警告我$pdo
可能未被定義,這是另一個問題,爲什麼會這樣?
Agggrrr,我發誓,我看了一遍,再而沒有發現它。如果PDO剛剛告訴我,我會保存1小時的變量。 – JorgeeFG