Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表搜索(mysql)(php)的正确语法_Php_Mysql_Syntax_Syntax Error - Fatal编程技术网

表搜索(mysql)(php)的正确语法

表搜索(mysql)(php)的正确语法,php,mysql,syntax,syntax-error,Php,Mysql,Syntax,Syntax Error,我想知道使用mysql\u查询来搜索表中与“key”匹配的内容的正确语法是什么 例如,假设我想搜索一个客户。假设这是一个非用户输入。即从脚本运行 $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_

我想知道使用mysql\u查询来搜索表中与“key”匹配的内容的正确语法是什么

例如,假设我想搜索一个客户。假设这是一个非用户输入。即从脚本运行

$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变量都将被相应的值替换。您还遗漏了fieldname客户端名称中的一个反勾号

将查询更改为

$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字符串,因为在双引号内,所有PHP变量都将被相应的值替换。您还遗漏了fieldname客户端名称中的一个反勾号

将查询更改为

$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);
试着这样做:

$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`"

将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`"

在对列名的查询中,缺少客户端名称的反勾号

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());
$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());

在对列名的查询中缺少`

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());
$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());

您缺少表名处的结尾。 换成

 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_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_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());