PHP+MySQL where子句中的语法错误
这是我的问题PHP+MySQL where子句中的语法错误,php,mysql,Php,Mysql,这是我的问题 $query = "SELECT * FROM ham WHERE Call = $call"; 我已经尝试过使用反勾号和单引号的各种配置。每次我收到这个: 错误:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“CALL=LZ1IRQ”附近使用的正确语法 “LZ1IRQ”是我通过POST使用HTML表单设置的实际值 $call = mysqli_escape_string($con, $_POST['call']); 将您的查询更改为此 $query
$query = "SELECT * FROM ham WHERE Call = $call";
我已经尝试过使用反勾号和单引号的各种配置。每次我收到这个:
错误:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“CALL=LZ1IRQ”附近使用的正确语法
“LZ1IRQ”是我通过POST使用HTML表单设置的实际值
$call = mysqli_escape_string($con, $_POST['call']);
将您的查询更改为此
$query = "SELECT * FROM ham WHERE Call = {$call}";
CALL是MySQL中的保留关键字。我认为你不能像现在这样使用这个关键词。请参阅保留关键字的官方列表
如果您需要使用保留密钥,那么您应该将其包装在后面的记号中。我可以推断您正在使用mysqli,因此最好且最安全的方法是绑定参数,使用此解决方案,您可以同时防止sql注入:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
$stmt = $mysqli->prepare("SELECT * FROM ham WHERE Call =?");
$stmt->bind_param('s', $call);
试试这个
$query = "SELECT * FROM ham WHERE `Call` = '".$call."' ";
我在数据库和查询中将“Call”改为“Callsign”。但现在我在另一个查询中又犯了一个错误$query=SELECT*FROM-ham,其中Callsign=$call;错误1:“where子句”中的未知列“LZ1IRQ”请再次确认您使用了反勾号,而不是单撇号包装:-不客气。很高兴我能帮上忙:-