SQL多查询特定

时间:2017-09-08 10:22:18

标签: php mysql

我有一个非常具体的问题,我在网上找到的任何内容都无法告诉我我的错误在哪里。

我想一次传递两个mysql查询。另外,它们完美地工作但是它们一起失败了。我尝试加入,添加;和multi_queries方法。一切都失败了。

现在我坚持使用这段代码:

// data insertion
$sql = "INSERT INTO comments (id, name, email, comment, article_id, date) VALUES ('$id', '$name', '$email', '$comment', '$article_id', '$date')";
$sql.= "DELETE FROM comments_validation WHERE id = $id";

if ($conn->multi_query($sql) === TRUE) {
    header('Location: http://url.com/index.php?success');

} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

错误:

  

错误:INSERT INTO注释(id,name,email,comment,art​​icle_id,date)VALUES(&#39;某些值&#39;)DELETE FROM comments_validation WHERE id =&#39;其他一些值&#39;       您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便使用正确的语法,并在“删除来自评论”之前使用WHERE id =&#39;其他一些值&#39;在第1行

提前致谢!

2 个答案:

答案 0 :(得分:0)

您必须在此sql语句的末尾添加;

$sql = "INSERT INTO comments (id, name, email, comment, article_id, date) VALUES ('$id', '$name', '$email', '$comment', '$article_id', '$date');";
                                                                                                                                               ^here                                                

答案 1 :(得分:0)

请在多个查询的每个查询的末尾添加分号作为字符串。

// data insertion
$sql = "INSERT INTO comments (id, name, email, comment, article_id, date) VALUES ('$id', '$name', '$email', '$comment', '$article_id', '$date');";
$sql.= "DELETE FROM comments_validation WHERE id = $id";

if ($conn->multi_query($sql) === TRUE) {
    header('Location: http://url.com/index.php?success');

} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}