クロステーブル挿入用に「mysqli_insert_id」を使用して最後の挿入 ID を取得しています
画像を別のテーブルのデータに関連付けようとしています。これを行うには、最初のテーブルに挿入された最後の行を取得し、その ID を使用して 2 番目のテーブルで挿入を実行する必要があります。ただし、最後の挿入 ID を取得するために使用しているメソッドは機能しません。
解決策:
MySQLi インターフェイスを使用して最後に挿入された ID を取得するための正しい構文は mysqli_insert_id($conn) です。その後、この ID を使用して挿入ステートメントにバインドできます。
コードの修正バージョンは次のとおりです:
$last_id = mysqli_insert_id($mysqli); // Get the last inserted ID $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();
追加の考慮事項:
最初のテーブルの ID フィールドが自動インクリメント フィールドであることを確認します。これにより、行が挿入されるたびに一意の ID が確実に生成されます。
以上がMySQLi でクロステーブル挿入のために最後に挿入された ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。