TABLE1からの最新の挿入の値を、複数のエントリを含むTABLE2への後続のMULTIPLE挿入ステートメントに追加したいのですが、MySQLでは、TABLE2に追加された各エントリに対して0(ゼロ)を取得しています。
mysql_insert_id
最初のMySQLクエリが実行された後、を変数に格納する必要があることはわかっています。したがって、次のよう$post_id
に、最初のステートメントの直後に呼び出される変数を含めました。mysql_query()
// If the submit button is pressed in the HTML form
if (isset($_POST['submit_event'])) {
// First SQL Statement
if (!mysql_query($sql1,$con))
{
die('Error: ' . mysql_error());
}
echo "SQL 1 SUCCESS! 1 record added<br/>";
// A variable to store the id from the last MySQL query
// This is the first time I have declared this variable
$post_id = mysql_insert_id();
// Second SQL Statement which utilises the variable
if (!mysql_query($sql2,$con))
{
die('Error: ' . mysql_error());
}
echo "SQL 2 SUCCESS! 1 record added<br/>";
echo "Finito!<br/>";
mysql_close($con);
}
私が書いたTABLE2へのこのSQLの複数の挿入ステートメントは次のとおりです。
$sql2="INSERT INTO TABLE2 (post_id, meta_key, meta_value)
VALUES
($post_id,'key 1','value 1'),
($post_id,'key 2','value 2'),
($post_id,'key 3','value 3')
";
ただし、実際にMySQLを調べると、これらすべて(正しいように見えます)にもかかわらず、TABLE2のすべてのエントリのpost_idは0(ゼロ)として出力されますか?
どこがおかしいの?ヘルプ!