Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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
PHP中的MySql查询语法错误_Php_Mysql - Fatal编程技术网

PHP中的MySql查询语法错误

PHP中的MySql查询语法错误,php,mysql,Php,Mysql,这段代码有什么错误 $FN=strtok($_POST['IS'],' '); $LN=strtok(' '); $query="SELECT person_id FROM a_person WHERE first_name=$FN AND last_name=$LN"; 错误是说我不明白为什么 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“Select AND last_name=”附近使用的正确语法 您需要引用$FN和$LN $query = "SELECT p

这段代码有什么错误

$FN=strtok($_POST['IS'],' ');
$LN=strtok(' ');
$query="SELECT person_id FROM a_person WHERE first_name=$FN AND last_name=$LN";
错误是说我不明白为什么

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“Select AND last_name=”附近使用的正确语法


您需要引用
$FN
$LN

$query = "SELECT person_id FROM a_person WHERE first_name='$FN' AND last_name='$LN'";

您需要引用
$FN
$LN

$query = "SELECT person_id FROM a_person WHERE first_name='$FN' AND last_name='$LN'";

使用explode并将其剥离。此外,mysql还可以转义数据:

$names = explode(' ',mysql_real_escape_string($_POST['IS']));
$FN = $names[0];
$LN = $names[1];
$query="SELECT person_id FROM a_person WHERE first_name='$FN' AND last_name='$LN'";

使用explode并将其剥离。此外,mysql还可以转义数据:

$names = explode(' ',mysql_real_escape_string($_POST['IS']));
$FN = $names[0];
$LN = $names[1];
$query="SELECT person_id FROM a_person WHERE first_name='$FN' AND last_name='$LN'";

您需要用单引号将字符串值括起来。


$query=“从名为“$FN”和姓为“$LN”的人员中选择人员id”

您需要用单引号将字符串值括起来。


$query=“从名为“$FN”和姓为“$LN”的人员中选择人员id”

在这种情况下,$LN不是数组吗?因此,这是一个混合字符串和数组的语法错误。另外,请引用您的字符串:
其中first_name='$FN'和last_name='$LN'”
我发现了一个问题。您很容易受到SQL注入的攻击。它起作用了,谢谢您解释引用字符串背后的逻辑,但您将我的答案(引用$FN$LN)注释为“不起作用”“在这种情况下,$LN不是数组吗?因此,这是一个混合字符串和数组的语法错误。另外,请引用您的字符串:
其中first_name='$FN'和last_name='$LN'”
我发现了一个问题。您很容易受到SQL注入的攻击。它起作用了,谢谢您解释引用字符串背后的逻辑,但您将我的答案(引用$FN$LN)注释为“不起作用”“这是不正确的。直接从文档中,将返回“字符串令牌”。这是不正确的。直接从文档中,将返回“字符串标记”。