0
我想有條件地構建SQL語句並遇到問題。在這種情況下,可能有一個WHERE子句或沒有。使用條件SQL執行PDO錯誤
$sql=null;
$arr='';
if($id != 'all'){
$sql = ' WHERE type = :type AND id=:id';
$arr = array(':type'=>$type,':id'=>$id);
}
$stmt = $dbh->prepare("SELECT * FROM table $sql");
$stmt->execute($arr);
...
如果id等於'all',那麼我只想重寫沒有WHERE子句的sql。 因爲我必須傳遞$ arr來執行,所以當id ='all'時出現下面的錯誤,因爲執行期望值: PHP警告:PDOStatement :: execute()期望參數1是數組,字符串給出
我試着通過執行一個空數組,但也得到一個錯誤。 如何做到這一點,而不必重寫兩個完整的sql塊,每個塊都有自己的執行狀態?
謝謝。這就是我現在擁有它的方式,但是人,它看起來必須有一個更好的方式來處理這個。你可能是對的。 – NaN
我想你是對的。 :)我已經記下你的答案。謝謝。 – NaN