[英]correct syntax for a table search (mysql)(php)
我想知道使用mysql_query的正確語法是在表中搜索與“鍵”匹配的東西。
例如,說我要搜索客戶。 並假定這是非用戶輸入。 IE從腳本運行。
$client_search = mysql_query("SELECT * FROM `clients` WHERE `client_name LIKE '%".$_POST['key']."%' OR `crmurl` LIKE '%".$_POST['key']."%' ORDER BY `client_name`") or die(mysql_error());
$fetch_client = mysql_fetch_array($client_search);
如果我運行這樣的命令,我會被告知語法不正確,更具體地說是錯誤。
`You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'crmurl` LIKE '%Fake%' ORDER BY `client_name`' at line 1`
但是我找不到任何不對勁的地方,有沒有人能提供幫助。
注意:請我真的不希望有5個以上的人告訴我mysql是如何過時的,它應該使用PDO :::,我知道,但是它是一個無需用戶輸入即可清理表數據的快速腳本。
在將整個查詢括在雙引號中時,無需附加sql字符串,因為在雙引號中所有PHP變量都將替換為相應的值。 您也錯過了字段名client_name
一個反引號。
$client_search = mysql_query("SELECT * FROM `clients` WHERE `client_name LIKE '%".$_POST['key']."%' OR `crmurl` LIKE '%".$_POST['key']."%' ORDER BY `client_name`") or die(mysql_error());
missing there ^
將查詢更改為
$client_search = mysql_query("SELECT * FROM `clients` WHERE `client_name` LIKE '%$_POST['key']%' OR `crmurl` LIKE '%$_POST['key']%' ORDER BY `client_name`") or die(mysql_error());
嘗試這樣:
$client_search = mysql_query("SELECT * FROM `clients` WHERE `client_name LIKE '%$_POST[key]%' OR `crmurl` LIKE '%$_POST[key]%' ORDER BY `client_name`") or die(mysql_error());
$fetch_client = mysql_fetch_array($client_search);
將SQL查詢更改為
SELECT * FROM `clients` WHERE `client_name` LIKE '%$_POST[key]%' OR `crmurl` LIKE '%$_POST[key]%' ORDER BY `client_name`"
要么
SELECT * FROM `clients` WHERE client_name LIKE '%$_POST[key]%' OR crmurl LIKE '%$_POST[key]%' ORDER BY client_name"
像這樣修改您的查詢
"SELECT * FROM `clients` WHERE `client_name` LIKE '%".$_POST['key']."%' OR `crmurl` LIKE '%".$_POST['key']."%' ORDER BY `client_name`"
client_name缺少引號
您在查詢列名稱時缺少`
Select * from `clients` WHERE `client_name` ...
所以查詢應該像-
$client_search = mysql_query("SELECT * FROM `clients` WHERE `client_name` LIKE '%".$_POST['key']."%' OR `crmurl` LIKE '%".$_POST['key']."%' ORDER BY `client_name`") or die(mysql_error());
您缺少在表名處關閉“`”的情況。 更改為
WHERE `client_name`
然后最終查詢將像
$client_search = mysql_query("SELECT * FROM `clients` WHERE `client_name` LIKE '%".$_POST['key']."%' OR `crmurl` LIKE '%".$_POST['key']."%' ORDER BY `client_name`") or die(mysql_error());
您的SQL語法有誤
$client_search = mysql_query("SELECT * FROM `clients` WHERE `client_name LIKE '%".$_POST['key']."%' OR `crmurl` LIKE '%".$_POST['key']."%' ORDER BY `client_name`") or die(mysql_error());
更換
`client_name
與
client_name
所以你的查詢就像
$client_search = mysql_query("SELECT * FROM `clients` WHERE `client_name` LIKE '%".$_POST['key']."%' OR `crmurl` LIKE '%".$_POST['key']."%' ORDER BY `client_name`") or die(mysql_error());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.