Gambaran Keseluruhan Isu:
Memasukkan data ke dalam jadual MySQL menggunakan kaedah biasa (seperti memasukkan NULL, 0, atau kurungan kosong) dan kemudiannya membuat pertanyaan untuk ID yang dimasukkan terakhir (LAST_INSERT_ID()) mengembalikan 0 secara konsisten. Isu ini menjejaskan kedua-dua mysql_insert_id PHP dan PDO::lastInsertId().
Penyelesaian:
Masalahnya terletak pada fail konfigurasi MySQL phpmyadmin. Apabila PersistentConnections ditetapkan kepada FALSE, CONNECTION_ID baharu diwujudkan untuk setiap pertanyaan. Ini membatalkan keputusan LAST_INSERT_ID() kerana ia dikaitkan dengan sambungan sebelumnya.
Untuk menyelesaikan isu, tetapkan PersistentConnections kepada TRUE dalam fail konfigurasi phpmyadmin. Ini memastikan sambungan yang sama dikekalkan merentas berbilang pertanyaan, membolehkan LAST_INSERT_ID() mengembalikan ID yang terakhir dimasukkan dengan tepat.
Maklumat Tambahan:
Untuk mendapatkan maklumat lanjut tentang kesan PersistentConnections, rujuk topik "Setiap pertanyaan mencipta pertanyaan baharu CONNECTION_ID()".
Penghargaan:
Terima kasih khas kepada dnagirl atas bantuan berharga dalam mengenal pasti isu ini.
Atas ialah kandungan terperinci Mengapakah `LAST_INSERT_ID()` Mengembalikan 0 dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!