2017-09-08 16 views
0

私は非常に特定の問題を抱えており、私がオンラインで見つけ出すことができなかったものは、どこでエラーが発生したか教えてくれました。SQLマルチクエリ固有

私は一度に2つのmysqlクエリを渡したいと思います。それとは別に、彼らは完全に動作しますが、一緒に失敗します。私はJOINを試してみた。および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; 
}