MySQL语法错误说" near' 1'"但我没有' 1'在我的查询中

时间:2014-10-20 17:00:25

标签: php mysql

我第一次使用带有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'......

2 个答案:

答案 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'