这是我的查询
$query = "SELECT * FROM ham WHERE Call = $call";
我尝试过使用反引号和单引号的各种配置。每次我得到这个:
错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的“CALL = LZ1IRQ”附近使用正确的语法
'LZ1IRQ'是我通过POST使用HTML表单设置的实际值。
$call = mysqli_escape_string($con, $_POST['call']);
答案 0 :(得分:2)
CALL
是MySQL中的保留关键字。我认为您现在无法使用此关键字。请参阅this保留关键字的官方列表。
如果您需要使用保留密钥,那么您应该将其包装在后面。“
答案 1 :(得分:1)
将您的查询更改为此
$query = "SELECT * FROM ham WHERE Call = {$call}";
答案 2 :(得分:1)
我可以推断你正在使用mysqli所以最好和最安全的是绑定参数,使用这个解决方案同时阻止sql注入:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
$stmt = $mysqli->prepare("SELECT * FROM ham WHERE Call =?");
$stmt->bind_param('s', $call);
答案 3 :(得分:0)
试试这个
$query = "SELECT * FROM ham WHERE `Call` = '".$call."' ";