PHP mysql错误删除行

时间:2016-02-13 22:30:10

标签: php mysqli

我一直收到以下错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第1行'order WHERE id ='49''附近

我不明白造成这种情况的原因。我检查了任何语法错误,查看了mysqli文档,并在Stack Overflow上查找了类似的帖子,没有运气。我到底做错了什么?

这是我正在使用的代码:

<?php 

    if (isset($_GET['order_id']) && $_GET['order_id'] != "")
    {
            $delete_id = $_GET['order_id'];
            echo "<p>$order_id</p>";

            $conn = new mysqli($server, $user, $password, $database);
            $sql = "DELETE FROM order WHERE id = '" . $delete_id . "';";
            $result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
            mysqli_close($conn);
    }
?>

2 个答案:

答案 0 :(得分:1)

order是MySQL关键字。这样命名你的表并不是一个好主意,但如果必须这样,你应该用反引号(`)来逃避它。

您的SQL查询应该是:

$sql = "DELETE FROM `order` WHERE id = '" . $delete_id . "';";

您还应该使用预准备语句,否则您的代码很容易受到SQL注入攻击。

答案 1 :(得分:-1)

尝试在'周围不使用单引号($delete_id),并使用prepared statements