0

テーブル「authors」に挿入された最後のレコードのIDを取得し、取得したIDを「articles」テーブルに挿入しようとしています。これが私のコードです:

$title = mysql_real_escape_string($_POST[title]);
$body = mysql_real_escape_string($_POST[body]);
$category = mysql_real_escape_string($_POST[category]);

$insert_author="INSERT INTO authors (name) VALUES ('$title')";
$select_author= mysql_query("SELECT LAST_INSERT_ID()");

$authId = mysql_fetch_array($select_author);
$query="INSERT INTO articles (body, date, category, auth_id) VALUES ('$body', '$date_now', '$category', '$authId')";

これは機能しません...

何かアイデアをお願いしますか?

前もって感謝します

マウロ

4

4 に答える 4

2

最後の挿入IDは次のように取得できますmysql_insert_id()

$insert_author="INSERT INTO authors (name) VALUES ('$title')";
mysql_query($insert_author) or die(mysql_error());

$authId = mysql_insert_id();

$query="INSERT INTO articles (body, date, category, auth_id) VALUES
('$body', '$date_now', '$category', '$authId')";

mysql_query挿入クエリの関数が欠落していることに注意してください。上記のコードにも追加しました。

于 2010-05-31T23:09:36.247 に答える
1

正確に機能しないもの。$authIdには期待値が含まれていますか?チェックするためにダンプしましたか?

それとは別に、あなたは2番目を忘れましたmysql_query()

于 2010-05-31T23:08:13.973 に答える
1

代わりにmysql-insert-idを試してください 。

于 2010-05-31T23:09:45.487 に答える
0

名前mysql_fetch_array($select_author)が示すように、配列を返すため、その配列の特定の値を取得して他のテーブルに挿入する必要があります。

于 2010-05-31T23:13:42.373 に答える