Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

VARCHAR(4) menyimpan lebih banyak karakter daripada empat

Jika Anda melakukan ini:

  1. Membuat atau memuat objek $o .
  2. Tetapkan '12345' ke properti/kolom yang dimaksud.
  3. Simpan $o dan biarkan MySQL memotong nilainya menjadi '1234' .
  4. Akses properti/kolom di $o dan dapatkan '12345' kembali.

maka Anda melihat salah satu masalah membiarkan database Anda secara diam-diam mengolah data Anda.

Penyimpanan berhasil, objek Anda tidak tahu bahwa MySQL telah memotong data sehingga menyimpan '12345' sekitar daripada memuat ulang kolom itu dari database, dan Anda memiliki data yang tidak konsisten di tangan Anda.

Jika Anda bergantung pada MySQL secara diam-diam memotong data Anda, maka Anda mungkin harus melakukan ini:

  1. Buat/muat objek Anda.
  2. Memperbarui properti.
  3. Simpan objek.
  4. Buang referensi lokal Anda ke objek tersebut.
  5. Muat baru dari database untuk memastikan Anda mendapatkan asli nilai.

Saya akan merekomendasikan menambahkan validasi ketat ke objek Anda untuk menghindari pemotongan diam di dalam MySQL. Mengaktifkan mode ketat juga akan menghindari masalah ini tetapi kemudian Anda perlu meninjau dan memperketat semua penanganan kesalahan dan validasi data Anda (yang sebenarnya bukan hal yang buruk).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan pada kolom stempel waktu mysql

  2. Terjebak dalam membangun kueri MySQL

  3. SQL Database dengan variabel jumlah kolom

  4. Cara mendorong Data Database MySQL ke aplikasi web MVC .NET

  5. Tanggal dalam UTC di mysql