Oleh: addthe | Juni 9, 2007

Koneksi PHP ke DBF

Susah juga yang namanya membuat sistem terintegrasi apalagi dengan menggunakan sistem terintegrasi itu kita musti membuat data-data input dan masukan menjadi sama dengan sistem yang lama. Dengan sistem yang menggunakan database yang berbeda juga jadul weks, tambahlah juga penderitaan kita sebagai seorang pengembang. Kalau database nya sudah normal sih gak masalah tapi kalau database nya belum normal khan malah menjadikan kerja kita jadi smakin berat.

Sedikit cerita dengan normalisasi ini, intinya sih bagaimana membuat database itu memiliki penataan yang lebih baik dan korelasi antar table dapat terjadi dengan baik pula, pokoke intinya gitu lah soale dulu pas diterangin pak seagate ya agak paham tapi kalo suruh nerangin lagi, :P .

Nah kembali ke tadi, dengan berbekal sedikit kemampuan pemrogram terbentuklah sudah sistem informasi dengan menggunakan PHP dan databasenya menggunakan DBF, weqs DBF apa pula tuh, baru tahu sekarag kalo ada database yang namanya DBF, tapi ya ada mirip2 nya dikit lah soal ada tulisan DB nya. Sebenarnya syntak2 nya sih gak begitu banyak buat akses PHP ke DBF itu tapi weleh-weleh kerjanya lumayan berat buat akses ke DBF nya bila dibanding dengan menggunakan MySQL

Syntaksnya secara garis besar seperti ini

1. Konekkan dulu PHP ke DBF

Seperti kalo dengan MySQl kita mengenal yang namanya mysql_connect(“host”,”user”,”pass”); maka dengan DBF ini hal yang sama juga terjadi . Tapi bedanya kalo menggunakan DBF ini kita tidak perlu memasukkan host, user, sama passnya, syntaksnya cukup dbase_open(“lokasifile”,identifier);

misalkan database kita bernama bukanmysql.dbf dan lokasinya di folder punyaku, untuk identifier

0 = read only
1 = write only
2 = read/write

jadi nanti hasilnya kurang lebih seperti ini $db=dbase_open(“punyaku/bukanmysql.dbf”,2);

dengan variabel yakni $db dikasih or die or die juga boleh sehingga menjadi $db=@dbase_open(“punyaku/bukanmysql.dbf”,2) or die(“$db nya cuek aja tuhhh”); or die berguna untk memberikan informasi kepada user kalo dbase tidak bsa dibuka dan tanda keong “@” berfungi agar php tidak menampilkan pesan error secar defaultnya.

2. Cari tahu jumlah record di database

Untuk mencari tahu jumlah record di database gunakan perintah dbase_numrecords, sehingga syntaks yang digunakan $jumlah=dbase_numrecords($db);

Mirip dengan MySQL khan yang menggunakan syntak mysql_num_rows($query);

3. Simpan array record di variable

Kalau di MySQL kita mengenal yang namanya perintah mysql_fetch_array maka di DBF ini kita mengenal yang namanya dbase_get_record_with_names($db,$urutan);

contohnya seperti ini

$db=dbase_open(“punyaku/bukanmysql.dbf”,2);//masukkan identifier

$jum=dbase_numrecords($db);//cari tahu jumlah record

for($x=1;$x=$jum;$x++){//lakukan perulangan berdasarkan jumlah data

$hasil=dbase_get_record_with_names($db,$x); /*simpan record di array $hasil*/

}

4. Tampilkan yang kuinginkan saja

Misalkan kita hanya ingin menampilkan record dengan syarat tertentu, seperti kita lihat di MySQL yang menggunakan perintah where seperti ini misalkan mysql_query(“select * from data where isine=’semaumu’ “);

ini berarti kita akan mengeluarkan data di table data dengan field bernama isine dengan record yang berisi semaumu saja.

kalo kita tulis di DBF menjadi seperti ini

$db=dbase_open(“punyaku/data.dbf”,2);//hanya untuk table data saja

$jum=dbase_numrecords($db);//cari tahu jumlah record

for($x=1;$x,=$jum;$x++){//lakukan perulangan berdasarkan jumlah data

$hasil=dbase_get_record_with_names($db,$x); /*simpan record di array $hasil*/

if($hasil['isine']==”semamumu”){ /*masukkan persyaratan data yang hendak dikeluarkan*/

echo “horee data ketemu di record nomer $x”; /*output jika data diketemukan*/

break; /*hentikan perulangan jika syarat terpenuhi , kasihan ngeloop terus :) , kalo misalkan data yang mau dikeluarkan banyak tak perlu kasih break kalee */

}
}

5. Buang Yang tidak perlu

untuk melakukan delete terhadap suatu record mudah saja, kalo di MySQl kita mengenal perintah mysql_query(“delete from data where id=’2′”);

maka dengan DBF perintah yang kita lakukan

$db=dbase_open(“punyaku/data.dbf”,2);//hanya untuk table data saja

$hapus=dbase_delete_record($db,2); /* kalau di mysql berdasarkan nama id nya tapi kalo di DBF berdasarkan urutan recordnya */

dbase_pack($db); /*databes dipack biar yang kehapus gak cuma terindek dengan deleted saja*/

dbase_close($db); //diclose biar sesuai aturan

6. Segera Perbaiki Diri

Untuk melakukan update data prinsipnya nomor record yang hendak diupdate musti disebutkan, dan isi update an itu juga disebutkan

$db=dbase_open(“punyaku/data.dbf”,2);//hanya untuk table data saja

$val=array(“data1″,”data2″);/*berisi isian field di record, kalau misalkan field berjumlah 3 maka jumlah array nya juga musti berjumlah 3 */

$update=dbase_update_record($db,$val,$urutan);/*update di no ke $urutan ya dengan isi record yakni $val itu sendiri*/

7. Nambah Boleh Aja

untuk menambah data prinspi sama dengan update tapi tidak diberi nomor urut data sehingga seperti ini

$db=dbase_open(“punyaku/data.dbf”,2);//hanya untuk table data saja

$val=array(“data1″,”data2″);/*berisi isian field di record, kalau misalkan field berjumlah 3 maka jumlah array nya juga musti berjumlah 3 */

$update=dbase_add_record($db,$val);/*masukkan datanya :) */

dah gitu aja dikit cerita tentang si DBF dengan si PHP silahkan yang lain menambahi


Tanggapan

  1. Thanks artikelnya, kebetulan gi ngerjain ini…^_^

  2. @antony
    sama-sama he he he , hidup cuma sekali musti bermakna buat yang lain :)

  3. thx berat lho .. lagi ada proyek migrasi dari dbf ke mysql nii ..

  4. #jaka
    ya sama-sama semoga proyeknya sukses dahh ;)

  5. kalau file dbfnya bukan di komputer lokal tapi di server yang lain gimana ya? kalau dbfnya di kompi lokal bisa sih misal

    dbase_open(“c:/lokal/file.dbf”,0)

    berhasil,
    tapi coba dengan mapping misal

    dbase_open(“Z:/mapfolder/file.dbf”,0)

    kenapa ngak berhasil ya????

    tolong di reply atau konfirm ke email saya ya, untuk yang tahu jawabannya, terima kasih :)

  6. haruse bisa, tapi aku juga belum nyoba, kalau misale komputer lain tapi masih dalam satu jaringan dan sampeyan punya hak untuk mengakses nya seharusnya bisa….

    dbase_open(”Z:/mapfolder/file.dbf”,0);

    itu mau akses komputer local apa computer lain, kalau komputer lain mungkin bisa dicoba dengan alamat yang benar dalam jaringan

  7. dbase_open(”Z:/mapfolder/file.dbf”,0);

    ini hasil mapping, jadi sebelumnya folder berisi file dbf yang ada di komputer lain yang dalam satu jaringan disharing (aku udah minta dikasih akses read/write sama admin komputer khusus folder yang disharing itu), aku buka pake ip-nya dengan run, terus aku map dengan klik kanan-map network drive folder itu di Z, aku gunain cara ini karena aku ngikutin cara yang sama yang dipakai aplikasi VB.NET yang berhasil menerapkan cara ini.

    Aku coba nyari info di google dan nanya temen aku, katanya properties log on di services untuk aplikasi apachenya harus diganti dengan account ketika aku log in jadi bukan log on as system lagi. ya aku udah ganti juga menjadi log on dengan account aku. hasilnya keliatan di task manager tab process. tapi tetep aja ngak bisa… bingung nih jadinya.

    kalau maksud mas dengan alamat sebenarnya gimana ya? apa file dbf-nya di masukkan ke folder web server komputer server terus kita tulis alamatnya lengkap dengan menggunakan ip? tapi kalau servernya ngak ada webserver gimana mas?

    makasih ya mas info-nya kalau ngak keberatan saya minta konfirmasinya ke email saya kalau mas udah jawab, soalnya yang ini aja saya baru tau hari ini kalau udah dijawab.

  8. ya ya ya ya udah ketemu caranya seperti ini

    dbase_open(”//192.168.5.17/mapfolder/file.dbf”,0);

    ngak perlu mapping2 segala, thanks ya mas ilmunya… :)

  9. tutorialnya bagus,tapi waktu saya nyoba hasilnya gak keluar tuh,
    Koneksi berhasil tapi untuk menampilkan isi databasenya gak bisa
    kira-kira yang salah apanya ya?

  10. kok gak bisa yach……

    newbie di php ni….tapi klo pake sql gw dah bisa…

    ktnya si syntaxnya salah….
    please help donk

    gw pake syntax yang ada diatas..man sedikit edit aja di nama databasenya

    $db=dbase_open(”punyaku/bukanmysql.dbf”,2);

    menjadi

    $db=dbase_open(”ymc.dbf”,2);
    (karena filenya ada di satu folder dengan index.php-nya(nama file gw)

    gw pake phptriad….please hel y

    ato kirim ke email gw donk

    bentuk udah jadinya
    klo bisa plus *.dbf-nya

    oc
    thx…ntr gw kasih cium yang gak janji d

    thx

  11. waw… keren banget nih….

    makasih banget….

    mau nanya donk…. klo mau ngejalanin perintah select gimana di php dbf…? ak masih katro neh….

    kaya :

    select * from apagitu where gimana = ‘gitu’

    tapi terima kasih banget lho…

    klo ada tutorialnya ak bagi ya.. dbf php…

    makasih banyak….

    maaf klo ada salah kata…

    thanks…

  12. # mr_freak lihat poin 4 juragan

  13. thanks banget adi…

    tapi maksudku ada ga yang make perintahnya sql..?

    jadi bisa pake fungsi2 distinct, sum, count, format…
    soalnya ak kebiasa pake perintah2 gitu…

    klo di vb yang koneknya ke dbf, bisa pake perintah sql… klo php gimana caranya ya? bisa ga?

    btw thanks banget ya…

  14. sepengetahuanku kok gak ada ya…

  15. aku boleh ga ngutip tulisan ini buat di blog ku… abis baru belajar bikin blog… boleh ya.. nanti aku cantumin nama sama link penulisnya sekalian… boleh ga?

  16. [...] klo belum jelas.. bisa buka langsung sumbernya artikelnya disini [...]

  17. wah ada ngga yang udah jadi ….. migrasi dari dbf ke mysql :D

  18. gw lg kerja skripsi jg neh, buat program yg bs baca database apa aja (multi database), hrs bs baca sql, access n dbf.. ada referensi ga y?bgsx pake VB or PHP buat ngerjainx?thx yoooo…^^

  19. mas kok digunakan untuk mengupdate data kok gak bisa ya?
    ak gnakan gini dbase_update_record
    kalau perintah yg lain bisa cma printah itu yg gak bsa..
    tolong pencerahannya mas

    • Kalau pake dbase_update_record gak bisa coba pakai dbase_replace_record(parameter sama). Aku coba langsung “nggendring” alias loos gitu…

      Oleh: ari solaris on Juni 8, 2009
      at 9:29 am

  20. Om
    Koq i coba slalu error Undefined function dbase_open
    apa nya yang salah ney??
    pake server apache2triad

  21. Thank bro… ijin copy artikelnya buat catatan kalo lupa…

  22. koneksi dbf ke php msh blum bisa, pdhl udah di arahin ke 192.168.0.1 atau (z:server_pabrik/simp)
    tetep saja blm bisa konek,..
    kayanya ada udang di balik terigu,..

    mohon petunjuk master”,
    tks

  23. kalo file .dbf nya dibuka kok ada kayak warning harus menset codepagenya terlebih dulu untuk masuk.
    kayak ini

    file namefile.dbf is not marked with a code page. please select the code page it was created in.
    kalo ingin dihilangkan/disetting secara otomatis tu caranya bagaimana ya?

  24. Kalau pake dbase_update_record gak bisa coba pakai dbase_replace_record(parameter sama). Aku coba langsung “nggendring” alias loos gitu…

  25. -Kok no 6 gk bisa ya????
    =>
    $val=array(”data1″,”data2″);
    $update=dbase_update_record($db,$val,$urutan);
    => gmn utk perub dtnya yg mn apa maksutnya ‘data1′ duganti ‘data2′ ato gmn.

    - no 7.penambahan baru mekanisme nya gmn>blm jelas boz…

    THANK’S B4
    for no 1-5 i’ts usevul
    hehehehe

  26. yang mapping ga bisa kemungkinan salah disini kalau ente copy script diatas….

    for($x=1;$x,=$jum;$x++)

    harusnya

    for($x=1;$x<=$jum;$x++)

    gue bisa berhasil tuh, tapi kalau $x,=$jum….alamat ga muncul apa2 di console :)


Beri tanggapan

Your response:

Kategori