Sabtu, 12 Mei 2012

Script INSERT Data Dengan PHP dan MS. Access




Artikel ini merupakan lanjutan dari artikel sebelumnya tentang cara koneksi PHP ke MS. Access.
Topik yang akan dibahas dalam postingan saya diwaktu pagi hari setelah subuh kali ini mengenai bagaimana cara membuat script PHP untuk insert data ke MS. Access melalui sebuah form. Artikel ini sekaligus menjawab pertanyaan mas Rais (member saya). Maaf mas ya… baru sempat bikin artikelnya :-)

OK… untuk pembahasan ini, kita ambil studi kasus saja yang lagi-lagi tentang data mahasiswa. Dalam contoh ini misalkan kita memiliki sebuah tabel, bernama ‘mhs’ yang di dalamnya terdapat 5 buah field yaitu NIMNAMA MAHASISWATGL LAHIR,BERAT BADAN, dan IQ. Hmm.. field yang aneh ya? :-) maklum untuk contoh ini saya coba membuat field dengan tipe data yang berbeda-beda. Kalau misalkan semuanya bertipe ‘string’ atau ‘text’ jadi gak menarik kasusnya.
Untuk NIM saya gunakan tipe data TEXT (diset sebagai PRIMARY KEY), NAMA MAHASISWA juga TEXT, TGL LAHIR saya gunakan tipe DATE/TIME, BERAT BADAN saya pilih NUMBER dalam hal ini bertipe SINGLE (bilangan real) dan IQ saya pilih NUMBER dalam hal ini LONG INTEGER atau INTEGER juga boleh.
Nah… untuk langkah pertama, silakan buat dahulu database dan tabelnya menggunakan MS. Access. Recordnya untuk sementara kosongkan saja, karena kita coba menginsert record melalui form yang kita buat dengan PHP dan HTML.
Langkah kedua silakan buat data source name di ODBC yang selanjutnya diarahkan ke file database MS. Access yang dibuat tersebut. Untuk panduannya silakan baca kembali artikel tentang cara koneksi PHP ke MS. Access.
Langkah ketiga, kita buat form untuk input datanya.
form.html
01.<h1>Input Data Mahasiswa</h1>
02. 
03.<form method="post" action="proses.php">
04.<table>
05.<tr><td>NIM</td><td><input type="text" name="nim" /></td></tr>
06.<tr><td>Nama Mhs</td><td><input type="text" name="nama" /></td></tr>
07.<tr><td>Tanggal Lahir</td><td><input type="text"name="tgllahir" /></td></tr>
08.<tr><td>Berat (Kg)</td><td><input type="text" name="berat" /></td></tr>
09.<tr><td>IQ</td><td><input type="text" name="iq" /></td></tr>
10.<tr><td></td><td><input type="submit" name="submit"value="Submit" /></td></tr>
11.</table>
12.</form>
Saya kira tidak ada masalah dengan membuat form seperti di atas :-)
Langkah keempat, kita buat script PHP untuk memproses input datanya (memasukkan data ke MS. Access).
Pada prinsipnya, caranya sama seperti kita membuat script INSERT data dengan PHP + MySQL. Ini dia scriptnya.
proses.php
01.<?php
02. 
03.// misalkan data source namenya 'mahasiswa', password dan username kosong
04.$conn = odbc_connect("mahasiswa""""");
05. 
06.$nim $_POST['nim'];
07.$nama $_POST['nama'];
08.$tgllahir $_POST['tgllahir'];
09.$berat $_POST['berat'];
10.$iq $_POST['iq'];
11. 
12.$query "INSERT INTO mhs VALUES ('$nim', '$nama', '$tgllahir', $berat, $iq)";
13.$hasil = odbc_exec($conn$query);
14. 
15.if ($hasilecho "Input data sukses";
16.else echo "Input data gagal";
17. 
18.?>
Nah.. setelah selesai silakan Anda coba input datanya. Pasti akan tersimpan ke MS. Accessnya :-)
Untuk input data berupa tanggal, Anda bisa menuliskan dalam format seperti di MySQL yaitu tahun-bulan-tanggal atau ‘YYYY-mm-dd’, misal: 1979-09-01 untuk menuliskan 1 September 1979 (ada apa ya dengan tanggal itu? :-) )
Oya.. satu lagi, karena field NIM sebelumnya kita set sebagai PRIMARY KEY, maka bila Anda masukkan data NIM yang sama akan muncul pesan kesalahan seperti ini:
1.Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again., SQL state 23000 in SQLExecDirect in F:\proses.php on line 12
2.Input data gagal
Wow… panjang sekali ya… pesan itu muncul karena ada duplikasi data pada field NIM. Mungkin Anda ingin supaya pesan tersebut tidak muncul. Meskipun di script kita berikan statement:
1.if ($hasilecho "Input data sukses";
2.else echo "Input data gagal";
namun… pesan itu tetap saja muncul atau meskipun kita berikan perintah
1.$hasil = odbc_exec($conn$queryor die("Input Gagal");
pesan WARNING itu tetap saja muncul. Nah… bagaimana supaya pesan tersebut hilang? dan yang muncul hanya pesan ‘Input Data Gagal’ saja? Untuk menyembunyikan pesannya Anda harus mengubah konfigurasi di file konfigurasi php.ini nya. Cari parameter
1.display_errors = On
dan ubahlah menjadi
1.display_errors = Off
Simpan kembali php.ini nya, dan lakukan restart Apache.
Nah.. mudah bukan membuatnya? Met mencoba aja ya.. Demikian mas Rais artikelnya, silakan mencoba. Mudah-mudahan tidak kecewa menjadi member saya ya :-)

1 komentar:

Posting Komentar

Related Posts Plugin for WordPress, Blogger...