ホームページ >データベース >mysql チュートリアル >複数テーブルの関連付けのために MySQL で最後に挿入された行 ID を確実に取得する方法

複数テーブルの関連付けのために MySQL で最後に挿入された行 ID を確実に取得する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-17 04:29:25805ブラウズ

How to Reliably Retrieve the Last Inserted Row ID in MySQL for Multi-Table Associations?

最後に挿入された行を取得して他のテーブルに関連付ける

複数のテーブルにデータを挿入する場合、多くの場合、挿入されたレコードを別のテーブルに関連付ける必要があります。そのIDを使用してテーブルを作成します。このような場合、最後に挿入された行の ID を取得することが重要になります。ただし、$mysqli->insert_id を直接使用すると、間違った結果が生じる可能性があります。

解決策:

最後に挿入された ID を正しく取得するには、mysqli_insert_id を使用する必要があります。 () 関数。この関数は、現在のデータベース接続に挿入された最後の行の ID を提供します。以下の修正されたコードは、その使用法を示しています。

<br>$stmt = $mysqli->prepare("<br> INSERT INTO table1 (username, firstname, lastname, image) <br> SELECT ?,?,?,image FROM table2 t2 WHERE ユーザー名 = ?<br>");<br>$stmt->bind_param('ssss', $username, $fname, $lname, $username);<br>$stmt->execute();</p>
<p>$last_id = mysqli_insert_id($conn); // 最後に挿入された ID を取得します</p>
<p>// 取得した ID を使用して table1 の image 列を更新します<br>$stmt2 = $mysqli->prepare("<br> UPDATE table1 SET image = ? WHERE id = ?<br>");<br>$stmt2->bind_param('si', $image, $last_id);<br>$stmt2->execute();<br>

注: table2 の ID フィールドがAUTO_INCREMENT 属性を使用して、挿入された行ごとに一意の ID 値を生成します。

以上が複数テーブルの関連付けのために MySQL で最後に挿入された行 ID を確実に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。