2010-12-06 205 views
1

我越來越癡迷。我的工作是第一次用事先準備好的聲明,我相信我已閱讀的地方,你可以準備像聲明:準備好的聲明mysqli

$stmt = $db->prepare("INSERT INTO {$table} (:var1, :var2) VALUES (:val1, :val2)"); 
$stmt->bind_param(':var1', $var1); 
$stmt->bind_param(':var2', $var2); 
$stmt->bind_param(':val1', $val1); 
$stmt->bind_param(':val2', $val2); 
$stmt->execute(); 

或類似的東西。我記得我已經讀過,你可以用':'作爲前綴,用具體的名稱來稱呼變量。但我真的找不到這樣的例子。我閱讀了PHP手冊,並且找不到任何這個東西的樣本。 這是對的還是我夢到了?

常見問題

如果你想知道爲什麼我不能用簡單的「?」方法:

$stmt = $db->prepare("INSERT INTO {$table} (?, ?, ?, ?, ?, ?) VALUES (?, ?, ?, ?, ?, ?)"); 

這很難寫。

+0

Pigarelli - 你是否指`select @current_time:= NOW();選擇@current_time;`? PS:不太確定列上的綁定是允許的 – ajreal 2010-12-06 13:12:00

回答

1

您不能在列名列表和VALUES列表中執行:var1,:var2,:varX一件事。其次,PDO接受命名參數綁定。

參見PHP Data ObjectsPDO::prepare中的示例。