About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Script INSERT Data Dengan PHP dan MS. Access
PHP, SQL

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 NIM, NAMA MAHASISWA, TGL 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

<h1>Input Data Mahasiswa</h1>

<form method="post" action="proses.php">
<table>
  <tr><td>NIM</td><td><input type="text" name="nim" /></td></tr>
  <tr><td>Nama Mhs</td><td><input type="text" name="nama" /></td></tr>
  <tr><td>Tanggal Lahir</td><td><input type="text" name="tgllahir" /></td></tr>
  <tr><td>Berat (Kg)</td><td><input type="text" name="berat" /></td></tr>
  <tr><td>IQ</td><td><input type="text" name="iq" /></td></tr>  
  <tr><td></td><td><input type="submit" name="submit" value="Submit" /></td></tr>
</table>
</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

<?php

// misalkan data source namenya 'mahasiswa', password dan username kosong
$conn = odbc_connect("mahasiswa", "", "");

$nim = $_POST['nim'];
$nama = $_POST['nama'];
$tgllahir = $_POST['tgllahir'];
$berat = $_POST['berat'];
$iq = $_POST['iq'];

$query = "INSERT INTO mhs VALUES ('$nim', '$nama', '$tgllahir', $berat, $iq)";
$hasil = odbc_exec($conn, $query);

if ($hasil) echo "Input data sukses";
else echo "Input data gagal";

?>

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:

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
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:

if ($hasil) echo "Input data sukses";
else echo "Input data gagal";

namun… pesan itu tetap saja muncul atau meskipun kita berikan perintah

$hasil = odbc_exec($conn, $query) or 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

display_errors = On

dan ubahlah menjadi

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 🙂

 

Saya seorang dosen dan peneliti di Universitas Sebelas Maret. Bidang penelitian saya tentang: adaptive learning, datascience, dan computer aided learning. Selain itu saya juga seorang blogger, serta penulis buku tentang pemrograman, dan matematika.

Leave a Reply