Skip navigation


Untuk proses pengumpulan tugas besar II Pemrograman Internet, gw sengaja bikin sistem yang bisa mendeploy langsung hasil pekerjaan peserta. Peserta kuliah wajib mengarsipkan pekerjaannya dalam format Zip. Kemudian untuk membuat databasenya, saya wajibkan peserta untuk menyertakan berkas bernama database.sql yang berisi dump dari basisdata yang digunakan. Peserta juga diwajibkan menggunakan koneksi basisdata dengan nama pengguna, sandi, dan nama basisdata yang sudah ditentukan.

Permasalahannya adalah bagaimana memasukkan dump pada berkas tersebut ke dalam basis data.

Salah satu caranya adalah dengan menggunakan fungsi exec atau system. Dengan menggunakan perintah ini kita dapat langsung mengeksekusi lewat command line.

$commandline = "mysql -h localhost -u $username -p$password $databasename -e \"source $databasepath\"";
system($commandline);

MySQL memberikan argumen -e untuk mengeksekusi sebuah perintah kemudian keluar dari aplikasi. Dengan demikian kita hanya butuh memasukkan perintah “source” lewat argumen tersebut.

Selain itu ada cara yang sedikit naif, yakni dengan melakukan parsing terhadap berkas dan mengeksekusi satu persatu.

$fd = fopen($databasepath, 'r');
$read = fread($fd, filesize($databasepath));
$queries = explode(';', $read);
foreach($queries as $query)
    mysql_query($query);

Berkas akan diparsing berdasarkan keberadaan karakter ‘;’ yang menunjukkan batas antara sebuah klausa dengan klausa yang lain. Dan,Voila! Cukup dengan perintah explode klausa akan langsung dimasukkan ke dalam array untuk dieksekusi satu per satu.

One Comment

  1. mantep banget….


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: