Langsung ke konten utama

Fatal error: Uncaught mysqli_sql_exception: Data too long for column - Penyebab dan Solusinya


Fatal error: Uncaught mysqli_sql_exception: Data too long for column

Kesalahan ini terjadi ketika Anda mencoba memasukkan data yang lebih panjang dari ukuran kolom yang ditentukan di tabel MySQL. Misalnya, jika Anda memiliki tipe data varchar (6), artinya hanya dapat menyimpan 6 karakter. Jika Anda memberikan lebih dari 6 karakter, maka akan muncul kesalahan ini.

Ada beberapa cara untuk mengatasi kesalahan ini, antara lain:

  • Mengubah tipe data kolom menjadi yang lebih besar, seperti varchar (255) atau text.
  • Mengatur mode MySQL agar tidak menggunakan STRICT². Mode ini merupakan kontrol tambahan dari MySQL untuk menghindari memasukkan data yang tidak valid. Namun, cara ini dapat menyebabkan data yang dimasukkan menjadi terpotong atau hilang.
  • Menangkap dan menangani pengecualian mysqli_sql_exception dengan menggunakan blok try-catch. Cara ini memungkinkan Anda untuk mengambil tindakan yang sesuai ketika terjadi kesalahan, seperti memberikan pesan kesalahan yang informatif atau mengubah data yang dimasukkan.

Berikut adalah contoh kode PHP yang menggunakan blok try-catch untuk menangkap dan menangani pengecualian mysqli_sql_exception:

// Koneksi ke database
$mysqli = new mysqli ("localhost", "user", "password", "database");

// Cek apakah ada kesalahan koneksi
if ($mysqli->connect_errno) {
    die ("Gagal terhubung ke MySQL: " . $mysqli->connect_error);
}

// Query untuk memasukkan data ke tabel
$sql = "INSERT INTO tabel (kolom) VALUES (?)";

// Siapkan statement yang aman dari serangan SQL injection
$stmt = $mysqli->prepare ($sql);

// Cek apakah statement berhasil disiapkan
if (!$stmt) {
    die ("Gagal menyiapkan statement: " . $mysqli->error);
}

// Tentukan data yang akan dimasukkan
$data = "Data yang terlalu panjang untuk kolom";

// Ikutkan data ke statement
$stmt->bind_param ("s", $data);

// Jalankan statement
try {
    $stmt->execute ();
    echo "Data berhasil dimasukkan";
} catch (mysqli_sql_exception $e) {
    // Cek apakah kesalahan disebabkan oleh data yang terlalu panjang
    if (str_starts_with ($e->getMessage (), "Data too long for column")) {
        // Tampilkan pesan kesalahan
        echo "Data yang Anda masukkan terlalu panjang untuk kolom";
        // Lakukan tindakan lain yang diperlukan, misalnya memotong data atau meminta input ulang
    } else {
        // Lempar kembali pengecualian untuk ditangani di tempat lain
        throw $e;
    }
}

// Tutup statement dan koneksi
$stmt->close ();
$mysqli->close ();

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Apa itu index file seperti index.html, index.php kegunaannya dan bagaimana membuat custom nya

Index file adalah file yang berfungsi sebagai halaman utama atau tampilan pertama dari sebuah website. File ini memiliki nama default yang bervariasi, tergantung pada jenis server dan konfigurasinya, namun beberapa nama default yang umum digunakan adalah index.html, index.php, index.jsp, atau index.asp.

Cara Reset Password Database MySQL Menggunakan Laragon

Cara Reset Password Database MySQL Menggunakan Laragon Laragon adalah salah satu lingkungan pengembangan lokal (local development environment) yang populer di antara para pengembang web. Dalam beberapa kasus, mungkin kita perlu mereset password database MySQL pada Laragon jika lupa password atau untuk alasan keamanan tertentu. Berikut adalah langkah-langkah yang dapat kita ikuti untuk melakukan reset password database MySQL menggunakan Laragon: