2012-08-07 44 views
1

我需要在PDO上執行多個「likes」查詢。PDO查詢中的多個LIKE

到目前爲止,我會說我的查詢1像這樣: $ query = $ database-> prepare('SELECT * FROM table WHERE column1 LIKE?'); $ query-> execute(array('%$ value1%'));

所以,如果我有這個在mysql中:

mysql_query("SELECT * FROM table WHERE column1 LIKE %$value1% OR column1 LIKE %$value2% OR column2 LIKE %$value1%") 

它會如何翻譯的PDO?

mysql_query("SELECT * FROM table WHERE column1 LIKE ? OR column1 LIKE ? OR column2 LIKE ?") 
$query->execute(array('%$value1%','%$value2%',.....)); 

這樣就夠了嗎?

+1

將你的報價風格排序(變量不插入單引號),是的,這將做得很好。 – DaveRandom 2012-08-07 20:20:48

回答

2

雖然在第二個示例中您似乎仍然使用mysql_*函數而不是PDO,但它仍然非常漂亮。

除此之外,如果您希望將變量替換爲字符串,則只需記住使用雙引號。

$query = $dbh->prepare('SELECT * FROM table WHERE column1 LIKE ? OR column1 LIKE ? OR column2 LIKE ?'); 
$query->execute(array("%$value1%","%$value2%",.....));