2017-09-08 51 views
0

我有一个非常具体的问题,没有什么我可以在网上找到能够告诉我我的错误在哪里。SQL多查询特定

我想一次传递两个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; 
} 

和错误:

Error: INSERT INTO comments (id, name, email, comment, article_id, date) VALUES ('some values')DELETE FROM comments_validation WHERE id = 'some other value' You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM comments_validation WHERE id = 'some other value' at line 1

提前感谢!

+0

您是否查阅了关于如何操作的手册? –

+0

http://php.net/manual/en/mysqli.multi-query.php如果你还没有阅读(官方)手册,则清楚说明。 –

+0

显然是的。但是我的想法一定是搞砸了,因为简单的答案是增加一个;在第一个陈述结束时...... – Tripduc

回答

0

你必须在这个SQL语句

$sql = "INSERT INTO comments (id, name, email, comment, article_id, date) VALUES ('$id', '$name', '$email', '$comment', '$article_id', '$date');"; 
                                       ^here             
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; 
}