2
使用PDOStatement::bindParam()
,可以將一個參數綁定到一個變量—,這對於準備好的語句多次執行時非常有用,每個語句都有不同的參數值。例如:是否可以將PDO參數綁定到對象的成員變量?
$dbh = new PDO('mysql:dbname=foo', 'eggyal', 'password1');
$qry = $dbh->prepare('DELETE FROM bar WHERE qux = ?');
$qry->bindParam(1, $qux, PDO::PARAM_INT);
while (true) {
$qux = ... ;
$qry->execute();
// etc
}
我的問題是:
是否有可能一個參數對象的成員變量綁定?例如:
$qry->bindParam(1, $obj->qux, PDO::PARAM_INT);
如果是這樣,到哪個對象的成員變量是結合這樣的參數:其被在
bindParam()
呼叫,的時間基準,或者其在語句執行引用?例如:$obj->qux = 123; $obj = new stdClass(); $obj->qux = 456; $qry->execute(); // which value is used for qux ?
此行爲在哪裏記錄(如果有的話)?
它在綁定時綁定到對象的實例屬性。創建一個新對象並將其分配給以前的對象變量名稱將不會更新該引用。 – mario
同意。如果您一次將多個對象保存到數據庫中,我是否可以建議在事務內部重寫此對象? (如果你的引擎支持它。) – FredTheWebGuy