寫一個類似的查詢我有一個PHP字符串以同查詢 - 這樣的事:如何在PHP
$select = "select category_id, category_name from categories where category_name like %"'.$category.'"%;
但我敢肯定,這是完全錯誤的,我在萬元感到困惑引號:)
什麼是正確的方式來把這個查詢在一起?
謝謝!
寫一個類似的查詢我有一個PHP字符串以同查詢 - 這樣的事:如何在PHP
$select = "select category_id, category_name from categories where category_name like %"'.$category.'"%;
但我敢肯定,這是完全錯誤的,我在萬元感到困惑引號:)
什麼是正確的方式來把這個查詢在一起?
謝謝!
我敢肯定,這只是:
$select = "select category_id, category_name from categories
where category_name like '%$category%'";
如果您正在尋找「最佳實踐」,您應該使用mysqli
class來調查prepared statements。話雖這麼說,
$category
變量(這是"'
,它應該是'"
)%
「在你的說法應該是引號內('
),不在外面他們您可以使用位置參數。不知道你使用的是哪個數據庫服務器,但是說你正在使用PDO層,然後看看PDO::prepare。
這將是更好地做一個不同的方式,但要回答這個問題,如果你使用雙引號,你不需要用點來連接變量
$select = "select category_id, category_name from categories where category_name like '%{$category}%'";
你搞砸了引號
"select [...] like '%".$category."%'";
這將成爲
select [...] like '%something%'
但你應該使用的查詢參數,以避免SQL注入
你想要的,不是外面字符串中的%通配符。
另外,如果你想評估字符串中的php變量,你應該支持這個變量。
" select category_id, category_name from categories where category_name like '%{$category}%' "
或連接它
" select category_id, category_name from categories where category_name like '%" . $category . "%' "
這將是相對功能:
$select = "select category_id, category_name from categories where category_name like '%"
.mysql_real_escape_string($category)."%'";
然而,你可能會想逃離另外有一個LIKE
內部特殊含義的字符,包括%
備註此外,mysql將無法使用索引來優化此查詢,這意味着它不會在大型數據庫上執行。您可能希望調查myISAM全文索引,以便在大型數據集上進行文本搜索。
你忘了百分比字符 – Andre
修正了,謝謝。 –