Error MySQL 1364

Beberapa waktu yang lalu ketika SyamSalabim sedang membuat aplikasi CRUD untuk website PHP sederhana, entah mengapa file yang diinput tidak ingin masuk ke dalam database MySQL. Setelah di cek dengan memakai SQL input manual melalui phpMyAdmin, MySQL menampilkan Error #1364 - Field Doesn't Have A Default Value. Seperti ini tampilan errornya.

Error

SQL query: copy

MySQL said:
#1364 - Field 'title' doesn't have a default value.


Berdasarkan pengamatan Syams, ada beberapa alasan kenapa error ini terjadi. Yang paling mendasar adalah update terbaru dari MySQL yang menginginkan file yang masuk ke dalam database disaring lebih ketat. Karenanya terjadi perubahan pada table: bagi kolom query dengan Default: None atau bukan NULL tidak akan bisa diinput jika pada aplikasi CRUD kolom itu tidak disertakan.

Salah satu cara untuk mengatasi hal ini adalah dengan mengubah Default pada kolom query dari None menjadi NULL. Dengan begitu data tetap akan bisa diinput meski pada program CRUD (seperti "INSERT INTO") kolom tersebut diabaikan. Tapi tentu saja cara ini bukan opsi yang efisien, ada langkah yang lebih mudah seperti dijelaskan pada tutorial berikut.

TUTORIAL

1. Langkah pertama yang perlu dilakukan adalah pergi ke bagian Home melalui phpMyAdmin. Jika Agan memakai localhost sebagai server, buka link berikut.

  http://localhost/phpmyadmin/index.php

2. Pada bagian menu, klik tab Variables dan cari sql_mode.

Server variables and settings

Filters
Containing the word:
  • Action
  • Variable
  • Value
  • Edit
  • sql_mode
  • STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

3. Klik Edit dan hapus bagian "STRICT_TRANS_TABLES,". Pastikan menghapus koma yang ada di bagian depannya. Kemudian pilih Save.

  • Action
  • Variable
  • Value
  • Edit
  • sql_mode
  • ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

4. Sekarang coba jalankan kembali fungsi SQL. Jika prosedurnya dilakukan dengan benar, maka database akan menyimpan data yang diinput seperti sedia kala.


Demikian cara mengatasi error MySQL #1364 field doesn't have a default value. Tentunya tutorial diatas lebih praktis diikuti dibandingkan mengganti setiap pengaturan atau settingan value pada kolom table menjadi NULL. Jika terdapat kendala yang dialami ketika atau sesudah mengikuti tutorial ini, silahkan sampaikan dalam kolom komentar.