我使用PHP和MySQL與PDO。有時我需要準備一個語句,其中有一個變量(佔位符)在此查詢中多次使用。爲什麼PDO不允許具有相同名稱的多個佔位符?
例子:
SELECT * FROM messages WHERE from_id = :user OR to_id = :user
但是,如果我會盡量準備這個發言,所以我需要做的是這樣一種方法,我將有一個錯誤:
SELECT * FROM messages WHERE from_id = :user1 OR to_id = :user2
要調用這個說法我需要這樣一個陣列:
array('user1'=>$user_id, 'user2'=>$user_id);
它對我來說看起來很愚蠢!爲什麼MySQL(PDO?)不允許我多次使用一個佔位符,並迫使我使用需要更多控制的額外變量?!
如果查詢相對簡單(如我上面發佈的),這可以很容易地處理,但現在我建立了一個查詢單個變量的5(!!!)使用。每次我添加佔位符時,我都需要在很多地方檢查代碼,以確保它正常。
是否有任何設置或調整來繞過此?
謝謝YCS!我最好避免使用仿真,因爲準備好的語句執行速度應該較慢。對? –
那麼,仿真模式實際上*更快*但我不會說差異是顯着的。上面的鏈接是我的文章,我討論所有的利弊爲每個模式 –
更快?!哇,意想不到的事......在這種情況下,我會去找一個關於這個的閱讀......謝謝! –