我有一個這樣的日子,MySQLi編寫條件語句
我有四個可能的變量,只有其中一個是必需的。我的問題是,如果有可能顯示或不顯示的部分查詢,我該如何準備一個語句/構造sql查詢。
這樣的事情,我想:
sql = "SELECT * FROM dogs WHERE name = ?"
if(isset($dogid)) {
sql .= "AND WHERE id = ?";
}
}
if(isset($dogcolour)) {
sql .= "AND WHERE colour = ?";
}
我的大腦完全打破了,我想,必須有一個更好的方法比使用類似$ dogID =「true」以做準備;在每個if中,然後用一堆if語句綁定它。
MySQL顯然有辦法處理這個,我只是不記得那是什麼。
謝謝。
留出空間,它出來'WHERE name ='blah'AND..'但並沒有什麼錯有條件構建查詢 – Mihai
嚴,我不認爲有一個問題與建設它,但我認爲必須比做$ bind_params。=「s」,$ bind_params。=「i」;等等,以及$ bind_vars。='$ id'; $ bind_vars。=「$ color」等全部在不同的if(){}中 - –
如果你正在用低級別的'mysqli'抨擊,這是實現它的方法。您可以通過在數組中組合條件來簡化它,然後在最後一步使用「AND」將它們連接在一起。更好的方法是使用像[Laravel](http://laravel.com/)這樣的[開發框架](http://codegeekz.com/best-php-frameworks-for-developers/)具有強大的ORM,簡化了描述過濾器的方法。 – tadman