我想寫一個函數,可以改變表中的列的值,其中的表,列和值是不預先確定的。是否有可能做這樣的事情:是否可以通過準備好的聲明來設置列更新?
UPDATE :tbl SET :column = :value;
做到這一點,或者參數只能綁定的值?
編輯:
或者,這是實現這一目標的唯一途徑:
$query = "UPDATE".$tbl." SET ".$column." = ".$value.";";
我想寫一個函數,可以改變表中的列的值,其中的表,列和值是不預先確定的。是否有可能做這樣的事情:是否可以通過準備好的聲明來設置列更新?
UPDATE :tbl SET :column = :value;
做到這一點,或者參數只能綁定的值?
編輯:
或者,這是實現這一目標的唯一途徑:
$query = "UPDATE".$tbl." SET ".$column." = ".$value.";";
這是不可能的。準備語句允許數據庫爲特定查詢優化查詢計劃。如果它不知道表或列,它不能創建查詢計劃。
參數只能綁定到值,而不是表/列。
這就是我想的是除了我編輯的任何其他選項? – 2012-03-29 06:32:41
那就是我想要的是除了我編輯的任何其他選項? – 2012-03-29 06:34:30
您可以像上面那樣創建一個準備好的語句,然後在準備好的語句中仍然使用:value部分代替$ value。如果你這樣做,並且$ tbl或$ column值來自用戶輸入,你將不得不確保它們是有效的,並妥善轉義。當然是 – 2012-03-29 06:37:12
:)謝謝 – 2012-03-29 06:37:56