我試圖遍歷一個PHP數組來構建我的查詢:通過數組循環創建mysqli的查詢
$args = array("this", "that", "other");
$arg_string = '';
foreach ($args as $key => $value) {
$arg_string .= "&& StockMastID LIKE '%{".$value."}%' ";
}
$arg_string = substr($arg_string, 3); // Remove && from first $args
$query = $db->query("SELECT * FROM tblStockDet WHERE `$arg_string`");
所以,從理論上講,查詢現在應該是:
$query = $db->query("SELECT * FROM tblStockDet WHERE StockMastID LIKE '%{this}%' && StockMastID LIKE '%{that}%' && StockMastID LIKE '%{other}%'");
這是不起作用,因爲執行查詢時出現Fatal error: Call to a member function fetch_assoc() on a non-object
錯誤。查詢執行得很好,如果我手動輸入它而不是使用循環,所以必須在foreach
語法中出現錯誤,或者在查詢中有$arg_string
左右的引號或打勾,但我無法弄清楚它是什麼是。
注意:或者,我是否應該放棄這一點而改用REGEXP
?如果是這樣,那看起來如何?