2012-03-29 78 views
0

我想寫一個函數,可以改變表中的列的值,其中的表,列和值是不預先確定的。是否有可能做這樣的事情:是否可以通過準備好的聲明來設置列更新?

UPDATE :tbl SET :column = :value; 

做到這一點,或者參數只能綁定的值?

編輯

或者,這是實現這一目標的唯一途徑:

$query = "UPDATE".$tbl." SET ".$column." = ".$value.";"; 

回答

0

這是不可能的。準備語句允許數據庫爲特定查詢優化查詢計劃。如果它不知道表或列,它不能創建查詢計劃。

+0

那就是我想要的是除了我編輯的任何其他選項? – 2012-03-29 06:34:30

+0

您可以像上面那樣創建一個準備好的語句,然後在準備好的語句中仍然使用:value部分代替$ value。如果你這樣做,並且$ tbl或$ column值來自用戶輸入,你將不得不確保它們是有效的,並妥善轉義。當然是 – 2012-03-29 06:37:12

+0

:)謝謝 – 2012-03-29 06:37:56

0

參數只能綁定到值,而不是表/列。

+0

這就是我想的是除了我編輯的任何其他選項? – 2012-03-29 06:32:41