[英]What is the correct syntax for attaching a php handler to MySQL this?
嘿,我有這個代碼段,並且在推斷正確的語法時遇到了麻煩。 它正在幫助我搜索數據庫,但似乎無法獲取它。 任何幫助表示贊賞。 謝謝!
這是其搜索我的MySQL DB的PHP部分的代碼段
$query = mysql_query("SELECT e.event_name, v.venue_name FROM tie_in.events e LEFT JOIN tie_in.venues v ON v.venue_id = e.venue_id WHERE e.event_name = '%.$uniqueId.%' OR v.venue_name = '%.$uniqueId.%' ORDER BY e.event_time");
我遇到的問題是$uniqueId
處理程序的包裝。 我如何用括號等將其正確包裝,以具有正確的語法來完成功能?
謝謝!
具有%
通配符的模式匹配需要使用LIKE
而不是=
。
您可以通過將PHP變量括在花括號中來在字符串內插值。
... WHERE e.event_name LIKE '%{$uniqueId}%' OR v.venue_name LIKE '%{$uniqueId}%' ...
請注意, $uniqueId
是在SQL中使用的安全變量。 您不想引入SQL注入漏洞。
另外,就其價值而言, 不建議使用mysql_ *函數 ,並將在以后的某些版本中將其從PHP中刪除。 因此,我建議您改用PDO,除非您必須使用mysql_ *,因為您有很多舊代碼。
請刪除%
因為使用=
時不支持通配符
$query = mysql_query("SELECT e.event_name, v.venue_name FROM tie_in.events e LEFT JOIN tie_in.venues v ON v.venue_id = e.venue_id WHERE e.event_name = '$uniqueId' OR v.venue_name = '$uniqueId' ORDER BY e.event_time");
或使用LIKE
代替=
$query = mysql_query("SELECT e.event_name, v.venue_name FROM tie_in.events e LEFT JOIN tie_in.venues v ON v.venue_id = e.venue_id WHERE e.event_name LIKE '%".$uniqueId."%' OR v.venue_name = '%".$uniqueId."%' ORDER BY e.event_time");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.