Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mendapatkan Nilai Auto-Increment Sebelum Memasukkan dalam MySQL/PHP?

Bagaimana untuk Mendapatkan Nilai Auto-Increment Sebelum Memasukkan dalam MySQL/PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 05:43:02892semak imbas

How to Retrieve Auto-Increment Values Before Insertion in MySQL/PHP?

Mengambil Nilai Auto-Tambahan sebelum Memasukkan dalam MySQL/PHP

Apabila memuat naik imej ke pelayan storan, selalunya wajar untuk memasukkan nilai kenaikan automatik (cth., 12345) dalam nama fail. Walau bagaimanapun, mengambil nilai ini sebelum melakukan sisipan boleh menjadi satu cabaran.

Cadangan Penyelesaian

Satu penyelesaian yang berpotensi ialah:

  1. Masukkan baris kosong ke dalam jadual .
  2. Dapatkan nilai kenaikan automatik untuk baris baharu.
  3. Padam baris kosong.
  4. Sisipkan data sebenar menggunakan nilai kenaikan automatik yang diperolehi.

Pendekatan Alternatif

Pendekatan yang lebih biasa digunakan melibatkan:

  1. Memasukkan data separa ke dalam jadual.
  2. Mendapatkan semula nilai kenaikan automatik yang dijana dengan sisipan.
  3. Melakukan pengiraan berdasarkan nilai kenaikan automatik.
  4. Mengemas kini baris dengan data akhir, menggunakan nilai kenaikan automatik dalam klausa WHERE.

Untuk keselamatan tambahan, adalah penting untuk melaksanakan operasi ini dalam urus niaga, memastikan proses itu sama ada selesai sepenuhnya atau tidak dilaksanakan langsung.

Kod Pseudo

begin transaction
insert into your_table (partial_data);
$id = get last autoincrement id
do calculations
update your_table set data = full_data where id = $id
commit transaction

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Auto-Increment Sebelum Memasukkan dalam MySQL/PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn