MySQL: LAST_INSERT_ID() Mengembalikan Sifar
Apabila cuba mendapatkan ID terakhir yang dimasukkan menggunakan LAST_INSERT_ID() selepas memasukkan data ke dalam jadual, pengguna mungkin menghadapi isu berterusan di mana fungsi mengembalikan 0. Ini boleh berlaku walaupun menggunakan alternatif masukkan sintaks seperti memasukkan NULL atau 0 atau meninggalkan nilai sepenuhnya.
Penyiasatan dan Penyelesaian:
Punca utama isu ini selalunya terletak pada tetapan PersistentConnections MySQL dalam phpmyadmin konfigurasi. Apabila tetapan ini ditetapkan kepada FALSE, sambungan baharu diwujudkan untuk setiap pertanyaan, menetapkan semula konteks sambungan dengan berkesan.
Dalam keadaan khusus ini, isu ini berpunca daripada bendera PersistentConnections dalam konfigurasi phpmyadmin yang ditetapkan kepada FALSE. Setiap pertanyaan memulakan sambungan baharu, menghasilkan CONNECTION_ID baharu. Akibatnya, LAST_INSERT_ID() menjadi tidak berkesan, kerana ia bergantung pada konteks sambungan untuk mendapatkan ID yang terakhir dimasukkan.
Kesimpulan:
Dengan menetapkan PersistentConnections kepada TRUE dalam phpmyadmin fail konfigurasi, isu kegigihan sambungan boleh diselesaikan. Ini membenarkan fungsi LAST_INSERT_ID() untuk mendapatkan semula ID yang terakhir dimasukkan dengan betul, kerana konteks sambungan dikekalkan merentas berbilang pertanyaan.
Atas ialah kandungan terperinci Mengapa LAST_INSERT_ID() MySQL Mengembalikan Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!