簡體   English   中英

表格搜索的正確語法(mysql)(php)

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

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