我第一次使用带有MySQL数据库的PHP创建了一个网站,并获得了一个我不理解的语法错误。我只想删除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'......
答案 0 :(得分:2)
你为每个查询调用两次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);
?>
答案 1 :(得分:0)
您的$ID
可能包含1.查询中错误的位置也是如此。
DELETE FROM tblreparation WHERE ID = $ID
或如果 ID包含字符串或以字符串相关的另一种格式存储(varchar),请将其换成引号:
DELETE FROM tblreparation WHERE ID = '$ID'