我試圖更新我的數據庫使用PDO語句,我沒有真正的問題,直到我嘗試使用變量作爲名稱和字段進行更新。PDO語句,其中表和字段名稱是變量
$real_function = 'top' ;
$value = 99 ;
$tableName = "twitter_control" ;
$stmt = $pdo->prepare("UPDATE ? SET ?=? WHERE id='control' ");
$stmt->execute(array($tableName, $real_function, $value));
如果我使用此代碼都按預期工作
$stmt = $pdo->prepare("UPDATE twitter_control SET top=? WHERE id='control' ");
$stmt->execute(array($value));
我怎樣才能使這項工作? ,有什麼建議嗎?
當使用實際準備好的語句(而不是仿真)時,說參數被轉義並用引號括起來是不正確的。實際情況是,字符串*作爲單獨的變量*傳遞給數據庫,該數據庫將其直接插入* compile *查詢計劃中,而不是SQL語句本身。 (效果是一樣的,但它解釋了爲什麼*你不能在其他上下文中使用參數。) – IMSoP 2013-05-02 22:04:25