我尝试过这些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数据库完成的
谢谢
答案 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();