ホームページ > データベース > mysql チュートリアル > 外部キー関係で「mysqli_insert_id()」を正しく使用するには?

外部キー関係で「mysqli_insert_id()」を正しく使用するには?

Linda Hamilton
リリース: 2024-12-30 17:15:09
オリジナル
409 人が閲覧しました

How to Correctly Use `mysqli_insert_id()` with Foreign Key Relationships?

外部キー関係を持つ mysqli_insert_id

外部キー関係を含む複数のテーブルを操作する場合、テーブル間のデータを正しく関連付けることが重要です。この記事では、あるテーブル (table2) から最後に挿入された ID を取得し、それを使用して別のテーブル (table1) に行を挿入する問題について説明します。

問題:

コードは、$image = $mysqli->insert_id を使用して、table2 から最後に挿入された ID を table1 の画像列にバインドしようとします。ただし、このアプローチは失敗し、テーブル間の適切な関連付けが妨げられます。

解決策:

この問題を解決するには、最初のステップは、table2 の ID 列がは自動インクリメントフィールドとして定義されます。次に、mysqli_insert_id() を使用して、table2 から最後に挿入された ID を取得します。変更されたコードは次のとおりです。

$last_id = mysqli_insert_id($mysqli); // Get last inserted ID from table2

$stmt = $mysqli->prepare("
  INSERT INTO table1 (username, firstname, lastname, image) 
  SELECT ?,?,?,image FROM table2 t2 WHERE username = ? AND t2.id = ?
");
$stmt->bind_param('sssss', $username, $fname, $lname, $username, $last_id);
$stmt->execute();
ログイン後にコピー

mysqli_insert_id() 関数は、table2 から最後に挿入された ID をキャプチャし、$last_id を使用して table1 の image 列にバインドします。これにより、画像が table1 の名、姓、ユーザー名に正しく関連付けられ、2 つのテーブル間の外部キー関係が維持されます。

以上が外部キー関係で「mysqli_insert_id()」を正しく使用するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート