Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Baris sisipkan PHP/MySQL lalu dapatkan 'id'

$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);

Lihat mysqli_insert_id() .

Apa pun yang Anda lakukan, jangan masukkan lalu lakukan "SELECT MAX(id) FROM mytable ". Seperti yang Anda katakan, ini adalah kondisi balapan dan tidak perlu. mysqli_insert_id() sudah memiliki fungsi ini.

Cara lain adalah dengan menjalankan kedua kueri sekaligus, dan menggunakan MySQL LAST_INSERT_ID() metode, di mana kedua tabel dimodifikasi sekaligus (dan PHP tidak memerlukan ID apa pun), seperti:

mysqli_query($link, "INSERT INTO my_user_table ...;
  INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");

Catatan bahwa Setiap koneksi melacak ID secara terpisah (jadi, konflik sudah dicegah).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memiliki SQL Dinamis di Prosedur Tersimpan MySQL

  2. Cara Membuat Hubungan di MySQL Workbench

  3. Pertempuran pengkodean karakter UTF-8 json_encode()

  4. SQL - Perbarui banyak catatan dalam satu kueri

  5. Bagaimana Fungsi LTRIM() Bekerja di MySQL