Ошибка синтаксиса MySQL говорит «около 1», но у меня нет «1» в моем запросе

Я делаю сайт в первый раз, используя PHP с базой данных MySQL и получая синтаксическую ошибку, которую я не понимаю. Я просто хочу удалить все из tblreparation с определенным ID а также все, начиная с rblrepstat с тем же ID . Я использую этот код:

 <?php $con=mysqli_connect("localhost","root","MYPASS","repair"); $ID = $_REQUEST['ID']; $sql = mysqli_query($con, "DELETE FROM tblreparation WHERE ID = {$ID}"); if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } $sql = mysqli_query($con, "DELETE FROM tblrepstat WHERE repID = {$ID}"); if (!mysqli_query($con,$sql)) { die('Error2: ' . mysqli_error($con)); } echo "1 record deleted"; mysqli_close($con); ?> 

И это ошибка, которую я получаю:

Ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «1» в строке 1

Около 1? Я даже не вижу «1» …

Вы дважды вызываете mysqli_query для каждого запроса.

Во второй раз, когда вы его вызываете, вы фактически передаете ресурс в качестве параметра запроса, что приводит к ошибке, которую вы получаете.

Попробуйте изменить свой код на это:

 <?php $con=mysqli_connect("localhost","root","MYPASS","repair"); $ID = $_REQUEST['ID']; $sql = "DELETE FROM tblreparation WHERE ID = {$ID}"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } $sql = "DELETE FROM tblrepstat WHERE repID = {$ID}"; if (!mysqli_query($con,$sql)) { die('Error2: ' . mysqli_error($con)); } echo "1 record deleted"; mysqli_close($con); ?> 

Ваш $ID может содержать 1. Который также указывает местонахождение ошибки в запросе.

 DELETE FROM tblreparation WHERE ID = $ID 

Или, если идентификатор содержит строку или хранится в другом формате, связанном с строкой (varchar), затем заверните его в кавычки:

 DELETE FROM tblreparation WHERE ID = '$ID'