这是我的查询
$query = "SELECT * FROM ham WHERE Call = $call";
我已经尝试了各种反引号和单引号的配置。每次我看到这个
Error: SQL语法错误;查看与MySQL服务器版本对应的手册,在第1行'CALL = LZ1IRQ'附近使用正确的语法
'LZ1IRQ'是我通过POST使用HTML表单设置的实际值。
$call = mysqli_escape_string($con, $_POST['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}";
试试这个
$query = "SELECT * FROM ham WHERE `Call` = '".$call."' ";