Я делаю сайт в первый раз, используя 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'