sql给出了一个错误

时间:2015-04-08 11:41:35

标签: php sql mysqli phpmyadmin

我尝试过这些SQL查询:

$sql = "SELECT * FROM `order` WHERE `KLANT_ID` = \'1\'";
$sql = "SELECT * FROM order WHERE KLANT_ID = '1'";
$sql = "SELECT * FROM order WHERE KLANT_ID = 1";

如果我运行这些,我会收到此错误:

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便使用接近'命令的正确语法WHERE KLANT_ID =' 1''在第1行

我通常使用1作为变量$ id来执行此查询,但这会产生相同的错误。同时从订单和KLANT_ID中删除``这些也不起作用。 此外,当我更改此部分时:\'1\'至' 1'它不起作用

这是通过PHP MYSQLI和PHPMYADMIN数据库完成的

谢谢

3 个答案:

答案 0 :(得分:0)

您手动转义查询中的单引号,而不需要(因为您对变量使用双引号)。
你需要撤消转义。

$sql = "SELECT * FROM `order` WHERE `KLANT_ID` = '1'";

此外,使用this函数来转义,而不仅仅是反斜杠变量。

答案 1 :(得分:0)

试试这个

$sql = "SELECT * FROM `order` WHERE `KLANT_ID` = 1";

因为KLANT_ID是int类型可能是你的查询将其读作字符串

答案 2 :(得分:0)

如果您正在使用MySQLi(如您所述),那么您应该使用预准备语句来避免SQL注入,而不是转义。

假设您的数据库连接是$ db;

$test = 1;
$stmt = $db->prepare("SELECT * FROM `order` WHERE `KLANT_ID` = ?");
$stmt->bind_param('i',$test);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();