Tipe data untuk gambar di phpmyadmin

Pernahkah anda membayangkan, bagaimana sebuah web editor pada media-media online mengupload artikel terkini lengkap dengan gambarnya ?.

Sesuai dengan judul diatas, edisi tutorial pemrograman web kali ini, akan mengupas tentang upload image ke database dan memanggil image dari database untuk ditampilkan pada web kita. Dengan memahami mekanisme cara upload dan menampilkan image dari database, harapannya anda dapat membuat web media online.

Untuk mengupload image ke database, kita dapat menggunakan dua cara: yang pertama dengan mengset tipe data blob untuk image, yang kedua dengan mengset string untuk path dari image.

Tipe data blob pada MySQL termasuk kategori tipe string, sama halnya dengan Varchar. Namun Blob digunakan untuk menyimpan string dalam biner. Blob biasanya digunakan jika berkaitan dengan image atau tipe file lainnya.

Percobaan

Buatlah database yang diberinama artikel, kemudia buat tabel yang diberinama artikel seperti script sql dibawah ini :
CREATE TABLE `gambar` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Judul` varchar(50) NOT NULL,
  `name` varchar(50) NOT NULL,
  `image` blob NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1

Kemudian buatlah file yang diberinama editor.php yang berisikan form seperti script berikut :
<form name="visi" method="post" action="posting.php" enctype="multipart/form-data">
Judul <input type="text" name="judul">
Gambar<br>
<img id="uploadPreview" style="width: 150px; height: 150px;" /><br>
<input id="uploadImage" type="file" name="image" onchange="PreviewImage();" />
<br><br>
<input type="submit" width="120" height="24" name="simpan" value="Submit" >
</form>

Langkah berikutnya, buatlah file posting.php yang akan memproses penyimpanan data yang diinputkan pada editor.php untuk disimpan pada database MySQL seperti yang ditunjukkan script berikut :
<?php
// Connect to Database
mysql_connect("localhost", "root", "");
mysql_select_db("artikel");

$judul=$_POST['judul'];

if(isset($_POST['simpan'])){
    if(!isset($_FILES['image'])){
        echo 'Pilih file gambar';
    }
    else
    {
 $image   = addslashes(file_get_contents($_FILES['image']['tmp_name']));
     $image_name = addslashes($_FILES['image']['name']);
        $image_size = getimagesize($_FILES['image']['tmp_name']);
    if($image_size == false){
   echo 'File yang anda pilih Bukan gambar';
        }
        else
        {
          if(!$insert = mysql_query("INSERT INTO gambar VALUES(NULL, '$judul','$image_name', '$image')"))
            {
                echo 'Gagal upload gambar';
     }

            else
            {
        // Informasi berhasil dan kembali ke inputan
  echo"<script>alert('Gambar Berhasil diupload !');history.go(-1);</script>";
     }

     }
    }
}

?>

Langkah selanjutnya, buatlah file yang diberinama imageview.php yang berfungsi untuk menampilkan image berdasarkan id_image itu sendiri seperti yang ditunjukkan script berikut :
<?php

    mysql_connect("localhost", "root", "");
 mysql_select_db("artikel");
    if(isset($_GET['image_id'])) {
        $sql = "SELECT * FROM gambar WHERE id=" . $_GET['image_id'];
  $result = mysql_query("$sql")
        or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysql_error());
  $row = mysql_fetch_array($result);
  //header("Content-type: " . $row["imageType"]);
        echo $row["image"];
 }
 mysql_close($conn);
?>

Langkah terakhir adalah menampilkan image beserta data-data lain pada saat proses inputan. File tersebut diberinama berita.php yang mengandung snippet code sbb:
<?php
        // Connect to Database
 mysql_connect("localhost", "root", "");
 mysql_select_db("artikel");

        $kueri = mysql_query(" SELECT * FROM gambar");
        while ($baris=mysql_fetch_array($kueri))
        {
           echo $baris['id']."&nbsp;".$baris[1]."<br><br>";

           echo"<img src= imageview.php?image_id=".$baris['id']." />";

           echo"<br><br><hr>";
         }
?>

Berikut ini, contoh ouput inputan dari aplikasi yang kita buat :



Sedangkan ouput dari setelah proses inputan ditunjukkan gambar dibawah ini :



Anda dapat mendownload keseluruhan file tersebut melalui :
  • Link 1 (Via Google Drive)
  • Link 2 (Via 4Shared)

Image menggunakan tipe data apa?

Berkas gambarnya sendiri disimpan dalam server sebagai file entah jpg, png, atau gif. Kalau masih mau nekad menyimpan berkas gambarnya sendiri dalam database, maka biasanya dalam bentuk binary yakni dengan tipe data BLOB (binary large object).

Apa itu Image BLOB?

Sederhananya BLOB adalah suatu cara yang digunakan untuk menyimpan file – file media seperti jpg, mp3, flv, mp4, dll, ke dalam database.

Apa itu tipe data BLOB?

Tipe data BLOB adalah tipe data versi binary dari TEXT, dimana karakter akan disimpan dalam bit. Dan untuk karakter huruf, huruf besar dan kecil akan dibedakan ('A' tidak sama dengan 'a'). Sama seperty TEXT, BLOB juga memiliki beberapa tipe : TINY BLOB, BLOB, MEDIUM BLOB, dan LONGBLOB.

Tipe tipe data apa saja pada MySQL?

Secara umum tipe data pada MySQL dibagi menjadi 4 yaitu: Numeric Values yaitu angka atau bilangan seperti 10; 123; 100.50; -10; 1.2E+17; 2.7e-11; dan sebagainya..
DATETIME. Kombinasi tanggal dan waktu. ... .
DATE. Kombinasi tanggal dan waktu. ... .
TIMESTAMP. TIMESTAMP [(M)] ... .