web-dev-qa-db-ja.com

mysqliの最後の挿入ID

画像を名、姓に関連付けたい...最後の行を取得し、それを使用して他のテーブルに挿入するにはどうすればよいですか?私は試した $image = $mysqli->insert_id;その後バインドしますが、機能しません。誰か助けてくれますか?

 $image = $mysqli->insert_id;//this should come 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, $image);
 $stmt->execute();
14
user2926655

mysqli::$insert_id-mysqli_insert_id —最後のクエリで使用された自動生成IDを返します。例:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();

出力

新しいレコードのIDは1です。

参照

21

まず、IDに自動インクリメントフィールドを作成する必要があります

次に、$last_id = mysqli_insert_id($conn);を使用できます

10
Rathod Paresh

table2から最後の行を取得した後、table1に挿入します。それが私が必要とするすべてです

続ける:

  1. 単純な通常の挿入クエリを使用して表1に挿入する
  2. 最後の挿入IDを取得
  3. 単純な通常の挿入クエリを使用して表2に挿入する

それと同じくらい簡単

1