Share

Untuk mengelola database yang berkaitan dengan gambar, sebagian besar programmer pasti menyimpan path dari gambar tersebut dalam table di database. Dengan kata lain, kita menyimpan gambar tersebut di tempat lain di server. Bagaimana kalau ternyata gambarnya tiba-tiba dihapus kemudian kita tidak melakukan update terhadap data tersebut di database. Maka dipastikan akan menjadi path yang tersimpan di table tidak akan ditemukan dan memunculkan broken image.

Jika Anda khawatir tentang kapasitas server dan perlu mengosongkan kapasitas di server Anda, Anda dapat memasukkan file gambar dalam database tanpa mengunggahnya ke dalam direktori. Langkah ini membantu untuk mengoptimalkan kapasitas server karena konten file gambar disimpan dalam database.

BLOB

MySQL memiliki tipe data BLOB (binary larger object) yang dapat menampung data biner dalam jumlah besar. Tipe data BLOB sangat cocok untuk menyimpan data gambar. Di MySQL, empat tipe BLOB tersedia – TINYBLOB, BLOB, MEDIUMBLOB, dan LONGBLOB.

Tipe Data BLOBKapasitas Maximum (dalam bytes)
TINYBLOB ((2^8)-1)
BLOB ((2^16)-1)
MEDIUMBLOB ((2^24)-1)
LONGBLOB ((2^32)-1)

Untuk menyimpan data gambar, sebuah table perlu dibuat dalam database. Seperti pada tutorial sebelumnya menggunakan database db_belajar. Buat table tb_images :

Buat halaman untuk proses upload gambar (index.php) :

Kemudian buat halaman untuk menampilkan gambar langsung dari database :

Tentunya tutorial di atas masih sangan sederhana, kita bisa menambahkan fungsi untuk melakukan resize gambar jika ukuran gambar cukup besar. Seperti pada tutorial di Cara Mudah Untuk Upload Dan Resize Gambar Dengan PHP.

Tipe data yang digunakan di atas adalah BLOB, jika ukuran gambar yang diupload cukup besar dan ternyata tipe data tersebut tidak bisa meng-handle. Anda bisa merubahnya menjadi MEDIUMBLOB atau LONGBLOB. Jika Anda menyimpan gambar di database, maka ukuran database akan besar pula. Gambar yang Anda simpan dalam database, ukurannya sama dengan gambar yang tersimpan dalam direktori.

Terima kasih.