簡體   English   中英

將php處理程序附加到MySQL this的正確語法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM