Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan INSERT MySQL Saya Gagal dengan 'Nilai tarikh yang salah: '0000-00-00'' Selepas Peningkatan MySQLnd?

Mengapa Pertanyaan INSERT MySQL Saya Gagal dengan 'Nilai tarikh yang salah: '0000-00-00'' Selepas Peningkatan MySQLnd?

Linda Hamilton
Linda Hamiltonasal
2024-12-22 06:43:14537semak imbas

Why Does My MySQL INSERT Query Fail with

Ralat MySQL: "Nilai tarikh salah: '0000-00-00'" dalam INSERT Query

Isu:

Pengguna menghadapi ralat semasa cuba memasukkan nilai ke dalam jadual dengan lajur tarikh melalui phpMyAdmin, walaupun berjaya memasukkan melalui laman web. Mesej ralat: "Nilai tarikh salah: '0000-00-00'" dipaparkan.

Analisis:

Punca ralat berkaitan dengan perubahan dalam mod SQL MySQL selepas naik taraf daripada MySQLnd 5.0.12 kepada 5.7.11. Dalam MySQL 5.7, mod ketat didayakan secara lalai, yang menguatkuasakan peraturan pengesahan data yang lebih ketat. Nilai lalai '0000-00-00' untuk lajur tarikh melanggar peraturan ini, mengakibatkan ralat.

Penyelesaian:

Untuk menyelesaikan isu dan membenarkan sisipan '0000-00-00' sebagai nilai tarikh yang sah, mod ketat mesti dilumpuhkan. Ini boleh dicapai dengan melaksanakan pertanyaan berikut:

SET GLOBAL sql_mode = '';

Maklumat Tambahan:

Mendayakan mod ketat memastikan integriti data dengan menguatkuasakan peraturan khusus untuk jenis dan nilai data. Walau bagaimanapun, ia juga boleh menyebabkan ralat apabila cuba memasukkan data yang tidak mematuhi peraturan ini dengan ketat. Dengan melumpuhkan mod ketat, pengguna boleh memintas semakan ini dan membenarkan pemasukan data seperti '0000-00-00', yang mungkin sah dalam konteks tertentu.

Adalah penting untuk ambil perhatian bahawa jika integriti data adalah penting untuk permohonan anda, anda harus menilai kesan melumpuhkan mod ketat dengan berhati-hati. Pertimbangkan untuk melaksanakan pengesahan tersuai dan mekanisme pengendalian ralat untuk memastikan data yang tidak sah tidak disimpan dalam pangkalan data anda.

Atas ialah kandungan terperinci Mengapa Pertanyaan INSERT MySQL Saya Gagal dengan 'Nilai tarikh yang salah: '0000-00-00'' Selepas Peningkatan MySQLnd?. 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