Belajar Php Mysql

50
Cara Menjalankan PHP dan MySQL menggunakan XAMPP PHP dijalankan dari web server Apache, dan jika anda mengikuti Tutorial PHP Dasar Untuk Pemula di duniailkom, maka di komputer anda telah terinstall aplikasi XAMPP. Untuk tutorial cara menginstall XAMPP, duniailkom telah membuat 2 tutorial lengkap, yakni cara menginstall XAMPP 1.8.3, atau versi yang lebih baru: cara menginstall XAMPP 5.6.3 Selain modul Apache, XAMPP juga memiliki paket bawaanMySQL Server. Untuk menjalankan keduanya, anda tinggal menklik tombol Start pada jendela XAMPP Control Panel seperti gambar dibawah ini: Jika tidak ada masalah, modul MySQL akan berwana hijau yang menandakan MySQL Server sudah berjalan. Cara Menjalankan MySQL dan PHP secara Terpisah Jika anda telah mengikuti Tutorial MySQL Dasar di duniailkom, pada tutorial tersebut saya menginstall MySQLsecara terpisah (bukan dari aplikasi XAMPP), kita juga bisa menggunakan aplikasi MySQL ini untuk diakses dari web server Apache yang berasal dari aplikasi XAMPP. Namun, seperti yang telah kita bahas pada tutorial cara menjalankan MySQL Server, bahwa di dalam sebuah komputer hanya bisa berjalan 1 buah MySQL Server. Sehingga jika anda menemukan pesan error seperti gambar dibawah ini, berarti ada aplikasi MySQL Server yang sedang aktif. www.duniailkom.com 1

description

hsdj dshkjhdskjs

Transcript of Belajar Php Mysql

  • CaraMenjalankanPHPdanMySQLmenggunakanXAMPPPHPdijalankandariwebserverApache,danjikaandamengikutiTutorialPHPDasarUntukPemuladiduniailkom,makadikomputerandatelahterinstallaplikasiXAMPP.

    UntuktutorialcaramenginstallXAMPP,duniailkomtelahmembuat2tutoriallengkap,yaknicaramenginstallXAMPP1.8.3,atauversiyanglebihbaru:caramenginstallXAMPP5.6.3

    SelainmodulApache,XAMPPjugamemilikipaketbawaanMySQLServer.Untukmenjalankankeduanya,andatinggalmenkliktombolStartpadajendelaXAMPPControlPanelsepertigambardibawahini:

    Jikatidakadamasalah,modulMySQLakanberwanahijauyangmenandakanMySQLServersudahberjalan.

    CaraMenjalankanMySQLdanPHPsecaraTerpisahJikaandatelahmengikutiTutorialMySQLDasardiduniailkom,padatutorialtersebutsayamenginstallMySQLsecaraterpisah(bukandariaplikasiXAMPP),kitajugabisamenggunakanaplikasiMySQLiniuntukdiaksesdariwebserverApacheyangberasaldariaplikasiXAMPP.

    Namun,sepertiyangtelahkitabahaspadatutorialcaramenjalankanMySQLServer,bahwadidalamsebuahkomputerhanyabisaberjalan1buahMySQLServer.Sehinggajikaandamenemukanpesanerrorsepertigambardibawahini,berartiadaaplikasiMySQLServeryangsedangaktif.

    www.

    dunia

    ilkom.

    com

    1

  • UntukmemeriksaapakahMySQLServersedangaktifatautidak,bisadilakukanmelaluitaskmanager.Silahkanbukataskmanager,dancariprosesdengannama:mysqld.exe.Jikaditemukan,berartiMySQLServertelahberjalandilatarbelakang.

    AndabolehmenggunakanMySQLversistandaloneini,ataumematikannyadanmenggunakanMySQLversibawaanXAMPP.

    www.

    dunia

    ilkom.

    com

    2

  • CaraMengujiKoneksiPHPMySQLDenganPhpmyadminUntukmengujiapakahaplikasiPHPdapatmengaksesdatabaseMySQL,kitabisamenggunakanaplikasiPhpmyadminbawaanXAMPP.

    AplikasiPhpmyadminadalahsebuahaplikasimanajemendatabaseMySQLyangberbasisweb.XAMPPmenambahkanaplikasiiniuntukmempermudahpengaksesandatabaseyangbiasanyadiaksesmenggunakanconsole,ataucmdWindows.Namunsayatidakakanmembahascarapenggunaanaplikasiphpmyadminpadatutorialkaliini.KitahanyamenggunakannyauntukmengecekkoneksidariaplikasiPHPkeMySQL.

    Untukmasukkemenuphpmyadmin,andabisamengetikalamatberikutpadawebbrowser:http://localhost/phpmyadmin/.AtaubisajugadarihalamanlocalhostXAMPP,lalucarimenuphpmyadminyangberadapadapojokkirihalamanlocalhost.

    JikaandamenggunakanaplikasiMySQLbawaanXAMPP,danapabilatidakadamasalahakantampilhalamanawalPhpmyadminsepertigambardibawahini:

    www.

    dunia

    ilkom.

    com

    3

  • TampilnyahalamantersebutmenandakanbahwaPHPdanMySQLtelahterhubungsecarasempurna.Namunjikatampilanphpmyadminsepertigambarberikutini,makadapatdisimpulkanbahwaMySQLServerbelumberjalan.

    www.

    dunia

    ilkom.

    com

    4

  • Jikaandamendapatitampilantersebut,permasalahanterdapatpadaaplikasiMySQLServeryangbelumdijalankan.SilahkanjalankanaplikasiMySQLdariXAMPPControlPanel.

    ApabilaandamenggunakanaplikasiMySQLyangterpisah(bukanbawaanXAMPP),makamenuphpmyadminseharusnyaakanmenjadisepertigambarberikut:

    Namunjangankhawatir,pesanerrortersebutterjadikarenaphpmyadminmencobamasukkeMySQLServerdenganuserrootdantanpapassword.Pesanerror#1045Accessdeniedforuserroot@localhost(usingpassword:NO)merupakanpesanerrorketikakitasalahmemasukkanpassworduntukuserroot.JikaandamengikutitutorialMySQLdiduniailkom,userrootakanmemilikipasswordqwertydanbukankosong,sehinggahalinilahyangmenyebabkantampilanerrortersebut.

    TampilanerrordiatassebenarnyaberartiMySQLServertelahberjalan,danbisadiaksesdariPHP.

    www.

    dunia

    ilkom.

    com

    5

  • PerkembanganCaraKoneksiPHPdanMySQLPHPmerupakanbahasapemogramanyangselaludiupdate,danberkembangmengikutiteknologiterbaru.Saatini,PemogramanBerorientasiObjek(ObjectOrientedProgramming)merupakantrendpemogramanPHP,danhalinijugamempengaruhicaramengaksesdatabaseMySQLdariPHP.

    PHPmemiliki3carapengaksesanMySQL,yaknimelauiPDO(PHPDataObjects),mysqliextensiondanmysqlextension.PDOmenggunakanpemogramanobjek,mysqliextensiontersediadalambentukobjekdanprosedural(diaksesmelaluifungsifungsi)sedangkanmysqlextensionsepenuhnyamenggunakanpemogramanprosedural.

    1.KoneksiMySQLdenganmysqlextensionSaatpertamakalimempelajariPHPMySQLsekitartahun2008(ataujikaandapernahmempelajariPHPMySQLbeberapatahunyanglalu),untukmengaksesMySQLdariPHP,kitamenggunakanfungsifungsisepertimysql_connect(),mysql_query(),danmysql_fetch_array().Fungsifungsiinitergabungkedalammysqlextension.SaatituPDOdanmysqliextensionmasihjarangdigunakan.

    Namunsaatini,tepatnyamulaiPHPversi5.5.0,PHPmemutuskanuntukmembuatmysqlextensionberstatusdeprecated.YangartinyapengaksesandatabaseMySQLmenggunakanfungsimysqlextensionsudahtidakdisarankanlagi.ProgrammerPHPdiharapkanpindahkemysqliextensionatauPDOyangberbasisobjek.

    Alasannya,MySQLversiterbarumemilikifiturfituryangsemakinlengkapdankompleks,sehinggaPHPmemutuskanuntukmembuatfungsiextensionbaruagarprogrammerPHPbisamenggunakanfiturfiturini.

    2.KoneksiMySQLdenganmysqliextensionSebagaipenggantimysqlextension,PHPmenyediakanmysqliextension(mysqlimerupakansingkatandariMySQLImproved).MysqliextensioninipadadasarnyaadalahperbaikandarimysqlextensiondandikembangkanuntukmendukungfiturfiturterbarupadaversiMySQL4.1keatas.Hampirsemuafungsiyangadapadamysqlextension,jugatersediapadamysqli.

    Selainmenggunakanmysqlmaupunmysqliextension,caraketigauntukpengaksesandatabaseMySQLdariPHPadalahmenggunakanPHPDataObjects(atauseringdisingkatdenganPDO).

    3.KoneksiMySQLdenganPDO(PHPDataObjects)PDO(PHPDataObjects),adalahextensionataupenambahanfiturdalamPHPyangdirancangsebagaiinterfaceuniversaluntukpengaksesanberbagaijenisdatabase(tidakhanyaMySQL).Contohnya,jikakitamenggunakanPDOdalammenuliskodepemograman,lalusuatusaatwebsitekitabertukardatabasedariMySQLkeOracle,makakitatidakperlumengubahsemuakodeprogram,cukupmengubahcarapemanggilanPDOdiawalprogramsaja.

    www.

    dunia

    ilkom.

    com

    6

  • CaraPenulisanmysqlextension,mysqliextension,danPDO(PHPDataObjects)UntukmengetahuisecarasekilasperbedaancarapengaksesandatabaseMySQLmenggunakanmysqlextension,mysqliextension,danPDO,berikutcontohkodePHPnya:

    Dalamcontohdiatas,dianggapbahwauserMySQLadalahroot,passwordqwerty,dannamadatabaseuniversitas.

    Andatidakperlumemahamikodeprogramdiatas,karenakitaakanmembahasnyadalamtutorialbelajarPHPMySQLdiduniailkomini.

    DalamtutorialPHPMySQLdiduniailkomini,untuktahappertama,sayaakanmenggunakanmetodemysqlextensionyangberbasisfungsiterlebihdahulu.Walaupunmetodeinitidakdisarankanlagi,namunmetodeinilahyangpalingmudahdipelajaridandikenalluas.

    Setelahselesaimembahasmysqlextension,nantinyakitaakanberalihkemysqliextension.CarapengaksesanMySQLdenganPDOyangberbasisobjekakanlebihmudahdipahamijikaandatelahmempelajaripemogramanberbasisobjek.

    www.

    dunia

    ilkom.

    com

    7

  • PengertianExtensiondalamPHPSampaitutorialkaliini,beberapakalisayamenggunakanistilahextension.Namunapakahyangdimaksuddenganextensionini?

    ExtensiondidalamPHPadalahistilahyangmerujukkepadakumpulanfungsiprogramtambahanyangmembuatPHPdapatmendukungberbagaifiturbaru.

    PHPterdiridariaplikasiinti(PHPcore),danfungsitambahan(extension).DalamaplikasiintiPHP,PHPtidakmenyediakanfungsiyangmenanganidatabaseMySQL.Penangananuntukfungsidatabaseinidipisahkanmenjadifungsitambahan(extension).Selaindatabase,extensiondalamPHPmenyediakanberbagaifungsilainnyauntukkeperluanyanglebihkhusus,sepertipembuatangambar,kriptografi,penangananemail,pembuatanPDF,danlainlain.

    CaraSettingmysqlextensiondenganphp.iniUntukmengaktifkanextensiondalamPHP,bisadilakukandarifilesetinganphp.ini(caramembukafilephp.initelahkitapelajaripadatutorialCaraMengubahFileKonfigurasiPHP(php.ini)),lalucariextension=php_mysql.dlldanextension=php_mysqli.dll,pastikanmenghapustandatitikkomadiawalkeduaextensioniniuntukmengaktifkannya.

    Masihpadafilephp.ini,padabagianiniandadapatmelihatberbagaiextensionyangterdapatdidalamPHP,bahkansebahagianbesartidakaktifsecaradefault.

    Filesettinganphp.inimenginstruksikankepadaPHPuntukmengaktifkansuatuextension,namunfileextensionitusendirijugaharusadadidalamPHP.Andabisamembukafolderxampp\php\extuntukmelihatfilefileextensionyangdigunakanuntukmenambahfiturPHP.

    www.

    dunia

    ilkom.

    com

    8

  • Untukmemeriksaapakahsetinganextension=php_mysql.dllsudahaktif,kitabisamenggunakanfungsiphpinfo().Andabisamenjalankanfungsiphpinfo()didalamsebuahfilephp,ataubisajugadenganmenklikmenuphpinfo()darihalamanlocalhostdariXAMPP.Dalamhalamanphpinfo(),carilahbagianmysqlsepertitampilanberikut:

    Jikaandamenemukanbagianmysql,berartiextensionmysqltelahaktifdankitabisamulaImembuatprogramuntukmengaksesdatabasemelaluiPHP.

    www.

    dunia

    ilkom.

    com

    9

  • MengenalFungsikoneksiPHPMySQL:mysql_connect()UntukmembuatkoneksiantaraPHPdenganMySQL,PHPmenyediakanfungsimysql_connect().

    FungsiinidiibaratkansebagaicarauntukloginkedalamMySQLServer.Fungsimysql_connect()membutuhkan3argumen,danmengembalikannilaifungsiberupavariabelkoneksikeMySQL.

    Berikutadalahformatdasarpenulisanfungsimysql_connect():

    $linkmerupakanvariabelyangakanmenampunghasildarifungsimysql_connect().JikaberhasilterhubungdenganMySQL,$linkakanberisinilaiyangberfungsisebagailinkkoneksidenganMySQL.LinkkoneksiiniakandibutuhkansepanjangkitamembuatprogramPHPMySQLnantinya.

    mysql_hostadalahargumenpertamadarifungsimysql_connect().Nilaimysql_hostdiisidenganalamatkomputerdimanaMySQLServerberjalan.JikaandamenjalankanMySQLmenggunakanXAMPPdikomputeryangsamadengantempatwebserverApacheberjalan,makaalamatinibisadiisidenganlocalhostatau127.0.0.1.NamunjikaMySQLserverdijalankandarikomputerlain,argumeniniakanberisiIPaddressdarikomputertersebut.

    mysql_useradalahnamauserMySQLdimanakitaakanlogin.Sepertiroot,admin,andidanlainlaintergantungkepadauserMySQLyangtelahterdaftardiserver.CaramembuatdanmenghapususerMySQLtelahsayabahaspadaTutorialCaraMembuatdanMenghapusUserMySQL(CREATEUSER).JikaandamenggunakanMySQLbawaanXAMPP,userrootdapatdigunakan.

    mysql_passworddiisidenganpassworddariuseryangdibuatpadaargumenmysql_user.

    Variabel$linkyangberisilinkkoneksiPHPMySQL(hasildarifungsimysql_connect()),termasukkedalamkelompoktipedatakhususPHPyangdisebutresources.VariabelResourcestidakbisaberdirisendiridanbiasanyadigunakansebagaiargumenuntukfungsilain.Andabebasmenggantinamavariabel$linkdengannamalain,seperti$koneksi,$link_mysql,dll.

    JikakoneksidenganPHPgagaldilakukan,fungsimysql_connect()akanmengembalikannilaiBooleanFALSE.HasilFALSEiniakandisimpandalamvariabel$linkdanbisakitagunakandalamperulanganIFuntukmenampilkanerroryangterjadi

    CaraMembuatKoneksiPHPdenganMySQLUntukmengetahuicaramembuatkoneksiantaraMySQLdenganPHP,langsungsajakitamasuk

    $link=mysql_connect(mysql_host,'mysql_user','mysql_password');

    www.

    dunia

    ilkom.

    com

    10

  • kedalamcontohkodeprogramcarapenggunaanfungsimysql_connect().

    BerikutadalahkodePHPuntukmembuatkoneksidenganMySQL:

    JikakoneksidenganMySQLberhasil,makadidalamwebbrowserakantampilgambarsepertiberikutini:

    Padabagianpertamakodeprogram,sayamembuatfungsimysql_connect(localhost,root,).FungsiiniberartisayamencobalogindenganMySQLServeryangberadadialamatlocalhost(komputeryangsamadenganwebserverberada),namauserrootdanpassword(stringkosong,yangberartitanpapassword).

    Fungsimysql_connect()mengembalikankondisistatuskoneksikedalamvariabel$link.Variabel$linkakanberisilinkkoneksi(bertiperesources)jikaberhasilterkoneksidenganMySQL,danakanbernilaiTRUEjikadikonversimenjadiBoolean.

    Namunvariabel$linkakanberisinilaiBooleanFALSEjikaPHPgagalloginkeMySQL.Nilai$linkinibisadigunakanuntukpengecekanapakahkoneksiberhasilatautidak.

    Jikaterjadikesalahan,misalkansajasayamengubahpasswordrootmenjadi123456,makatampilanwebbrowserakansepertiberikutini:

    123456789101112131415161718192021

    www.

    dunia

    ilkom.

    com

    11

  • Sepertiyangterlihat,PHPmengeluarkanpesanerrormysql_connect():Accessdeniedforuserroot@localhost(usingpassword:YES),yangberartiloginkeMySQLgagalkarenasalahpassworduntukuserroot.

    Agarlebihinformatif,diakhirprogramsayatampilkannilaidarivariabel$linkdenganmenggunakanfungsivar_dump().Andaakanmelihatbahwavariabel$linkbertipedataresourcesjikakoneksiberhasil,danbertipedataBooleanFALSE,jikakoneksigagal.

    SedikitcatatantentanguserMySQLjikamenggunakanMySQLServerdariXAMPP.

    Selainuserroot,MySQLbawaanXAMPPjugaberisibeberapauserlain.Berikutadalahdaftarusertersebut:

    Halyangpentingdaritabeldiatas,MySQLmembolehkanuserdengannama:ANY,yangberartiMySQLbawaanXAMPPmembolehkanuserdengannamaapapununtukmasukkeMySQLServer,sehinggajikaandamengubahcontohkitamenjadi:$link=mysql_connect(localhost,aku_siapa,),PHPakantetapberhasilmasukkedalamMySQLServer.

    MySQLversiXAMPPmemangtidakdirancanguntukkeamanan,namunlebihkepadakemudahandalammembuatkodeprogramPHP.

    www.

    dunia

    ilkom.

    com

    12

  • Mengenalfungsidie()danexit()dalamPHPSalahsatufungsiPHPyangseringdigunakanpadasaatmelakukankoneksidenganMySQLadalahfungsidie()danexit().

    Sesuaidengannamanya,fungsiinibertujuanuntukmembunuhataukeluardariPHP.KeduafungsiinibertujuanuntukmembuatprosesPHPberhentidiprosespadasaatitujuga(padasaatfungsiinidipanggil).

    Sebelumbunuhdiri,fungsidie()danexit()bisamenampilkanpesanterakhir.

    Berikutadalahpenggunaanfungsidie()dalammembuatkoneksiantaraPHPdenganMySQL:

    Fungsidie()padakodediatasakanmenyebabkanprosesPHPberhentijikaloginkedatabaseMySQLgagaldilakukan.Denganmenggunakanfungsidie(),kitabisamemastikanbahwaPHPtidakakanmengeksekusiperintahperintahselanjutnya.

    Apabilakitatidakmenggunakandie(),makaPHPakanterusmenjalankanprosesberikutnyayangakanmenghasilkanerror(karenakoneksikedatabasememangtidakakanbisadilakukan).

    MenghentikankoneksiPHPMySQLdenganmysql_close()KoneksiPHPdenganMySQLakandihentikansecaraotomatispadasaateksekusiprogramselesai,yaitupadasaathalamanPHPselesaidiproses,sehinggakitatidakperlumenghentikanyasecaramanual.

    NamunjikaandainginmenghentikankoneksidenganMySQLpadasaatprogramPHPsedangberjalan,PHPmenyediakanfungsimysql_close().Fungsiinimembutuhkan1buahargumenyangdiisidenganvariabellinkkoneksihasilpemanggilanfungsimysql_connect().Variabelkoneksiini

    1234567891011121314151617

    www.

    dunia

    ilkom.

    com

    13

  • bersifatopsional,danjikadiabaikanmakaPHPakanmenggunakankoneksimysqlterakhir.

    Berikutadalahcontohpenggunaanfungsimysql_close():

    Dalamtutorialkaliini,kitatelahberhasilmembuatkoneksiantaraPHPdenganMySQLServer.NamununtukberkomunikasidengandatabasedalamMySQL,harusmenggunakanquery.DalamtutorialberikutnyakitaakanmembahascaramenjalankanqueryMySQLdariPHPdenganfungsimysql_query.

    123456789101112

    www.

    dunia

    ilkom.

    com

    14

  • MengenalFungsiQueryPHPMySQL:mysql_queryUntukmenjalankanqueryMySQL,PHPmenyediakanfungsimysql_query().Fungsiinidijalankansetelahkoneksiberhasildilakukandenganfungsimysql_connect().

    Fungsimysql_query()merupakanfungsiyangakanseringkitagunakan,karenadenganfungsiinilahPHPakanmelakukanpercakapandenganMySQL.HampirseluruhperintahqueryMySQLyangkitabahaspadatutorialbelajarMySQLDasar,dapatdijalankandenganfungsimysql_query().

    Fungsimysql_query()membutuhkan2argumen,dimanaargumenpertamadiisidenganqueryMySQL,danargumenkeduadiisidenganlinkkoneksihasilfungsimysql_connect().Argumenkeduainibersifatopsional.

    Berikutadalahformatdasarpenulisanfungsimysql_query()dalamPHP:

    $result=mysql_query('query_mysql',[$link_koneksi_mysql]);

    $resultadalahvariabelyangakanmenampunghasildarifungsimysql_query().Jikafungsimysql_query()berhasildijalankan,variabel$resultakanberisihasilquery.Namunhasilqueryiniharusdiproseslebihlanjutagardatanyadapatditampilkan.Variabel$resultbertiperesources(samadenganhasildarifungsimysql_conncect()).Variabel$resultakanbernilaiBooleanFALSEjikaquerygagaldijalankan.Namadarivariabelinitidakharusditulissebagai$result,andabebasjikainginmenggantinyadengannamalain.

    query_mysqladalahargumenpertamafungsimysql_query().PadabagianinilahkitamenulisqueryMySQL.QuerytersebutselanjutnyaakandikirimkepadaMySQLServeruntukdiproses.ArgumeniniharuspertipeStringdanmengikutiaturanStringdidalamPHP.Contohqueryini,misalnyaSELECT*FROMmahasiswa,atauCREATEDATABASEuniversitas.

    $link_koneksi_mysqladalahargumenkeduadarifungsimysql_query().Argumeninidiisidenganvariabelhasilpemanggilanfungsimysql_connect().Argumeninibersifatopsional,danjikadiabaikan,PHPakanmenggunakanvariabelmysql_connect()yangsedangterkoneksisaatini.

    JikaandabelummemahamipengertiandancarapenulisanquerySELECTMySQL,duniailkomtelahmenyediakantutorialdasartentangquerydalamTutorialMySQL:CaraPenulisanQuerySELECTMySQL.

    CaraMenjalankanqueryMySQLdariPHPUntukmemahamicarapenggunaanfungsimysql_query(),langsungsajakitamasukkedalamcontohprogram.Dalamcontohprogramberikut,sayaakanmembuatqueryuntukmenampilkan

    www.

    dunia

    ilkom.

    com

    15

  • seluruhdatabaseyangadadidalamMYSQL.

    Berikutadalahcontohprogrampenulisanfungsimysql_querydalamPHP:

    Jikaandamenjalankanperintahdiatas,didalamwebbrowserakantampilsemuanamadatabaseyangadadalamMySQL.

    Padabariske3dariprogramdiatas,sayamembuatkoneksidenganMySQLmenggunakanfungsimysql_connect().Fungsiinimenggunakanuserrootdantanpapassword.Hasilkoneksifungsisayasimpankedalamvariabel$link.

    Selanjutnyapadabariske6sayamemeriksanilaidarikoneksimysql_connect()dengancaramembuatlogikaIFuntukvariabel$link.JikaMySQLgagaldiakses,makafungsidie()akanmemerintahkanPHPuntukmenghentikanprogram.

    Namunjikakoneksiberhasil,padabariske12sayamembuatfungsimysql_query()untukmenjalankanquerySHOWDATABASES.QueryiniadalahperintahuntukmenampilkanseluruhnamadatabaseyangadapadaMySQL.

    Kodeprogrampadabariske15digunakanuntukmenampilkanhasilquery.Fungsimysql_fetch_row()belumsayabahas,danakankitapelajaripadatutorialberikutnya.

    Apabilaqueryyangdigunakanlebihpanjangdankompleks,andabisamenyimpannyadidalamsebuahvariabelterlebihdahulu,barukemudiandijalankandenganmysql_query(),seperticontoh

    www.

    dunia

    ilkom.

    com

    16

  • berikutini:

    $query="SELECT*FROMmahasiswaWHEREIPK>5";$result=mysql_query($query,$link);

    Denganmemindahkanquerykedalamvariabel,akanmembuatprogramkitamenjadilebihrapi.

    Argumenkeduadarifungsimysql_query()jugabolehtidakditulis,danPHPakanmenggunakanlinkkoneksiMySQLterakhiryangtersedia,seperticontohberikut:

    $query="SELECT*FROMmahasiswaWHEREIPK>5";$result=mysql_query($query);

    Fungsimysql_connect()danmysql_query()adalahfungsipalingdasardalamkoneksiPHPdenganMySQL.Untukmenampilkanhasildariquerytersebut,PHPmenyediakanberbagaicarayangbisadigunakanuntukberbagaisituasi.Carapengaksesaniniakankitapelajaripadaartikelartikelselanjutnya.

    www.

    dunia

    ilkom.

    com

    17

  • MenampilkanTabelMySQLdenganfungsimysql_fetch_rowUntukmenampilkantabelMySQLdidalamPHP,hasildarifungsimysql_query()harusdiproseslebihlanjutagarbisaditampilkandidalamwebbrowser.PHPmenyediakanbanyakcarauntukmenampilkanhasilqueryMySQL.Salahsatunyaakankitabahasdalamtutorialkaliini:denganfungsimysql_fetch_row().

    PerintahSELECTadalahqueryMySQLyangpalingseringgunakan.Queryiniberfungsiuntukmenampilkandatadaridatabase.DatayangditampilkanMySQLbiasanyadiberikandalambentuktabelyangterdiridaribarisdankolom.

    Fungsimysql_fetch_row()digunakanuntukmenampilkantabelsecarabarisperbaris.Fungsimysql_fecth_row()akanmengembalikannilai1barisdarisebuahtabelpadasetiappemanggilan.Sehinggauntukdapatmenampilkanseluruhisitabel,fungsimysql_fecth_row()harusdipanggilsecaraberulang.

    Berikutadalahformatdasarpenulisanfungsimysql_fetch_row()dalamPHP

    $rowadalahvariabelyangakanmenampunghasilfungsimysql_fetch_row().Hasildarifungsimysql_fetch_row()berupatipedataarraydengankeymerujukkepadakepadaurutankolom,danvaluenya(nilaidariarray)adalahisidarikolomtersebut.

    $resultadalahvariabelinputanqueryuntukfungsimysql_fecth_row().Variabeliniberasaldarifungsimysql_query().

    Carapengambilandatadarivariabel$row,pentinguntukdipahami.

    Variabel$rowhasilfungsimysql_fetch_row()bertipearray.JikasebuahbarisdidalamtabelMySQLterdiridari3kolom,makavaribel$rowakanberisinilaisebagaiberikut:$row[0]=nilai_kolom_1,$row[1]=nilai_kolom_2,dan$row[2]=nilai_kolom_3.Indexarraydimulaidari0,dankarenaitukolom1beradapadaindex0,bukanindex1.

    Yangperlumenjadiperhatian,fungsimysql_fetch_row()hanyamembaca1barispadasekalipemanggilan.Jikatabelkitaterdiridari5baris,makafungsimysql_fecth_row()harusdiulangsebanyak5kali.

    CaraMenampilkanTabelMySQLdariPHPAgarlebihmudahmemahamicarakerjafungsimysql_fetch_row(),kitaakanlangsungpraktekdengankodeprogram.

    Karenafungsimysql_fetch_row()digunakanuntukmenampilkandata,kitaharusmembuatdatanya

    $row=mysql_fetch_row($result)

    www.

    dunia

    ilkom.

    com

    18

  • terlebihdahulu,yaituberupadatabaseMySQLbesertatabelnya.

    SebagaidatacontohdansaranalatihanmenggunakanqueryMySQL,sayaakanmembuatdatabaseuniversitas,dantabelmahasiswa_ilkom.Databaseuniversitasdantabelmahasiswa_ilkominijugaakansayagunakanpadatutorialPHPMySQLselanjutnya.

    Berikutadalahkodeyangdiperlukan:

    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

  • KodePHPdiatassedikitpanjangjikadibandingkancontohcontohkitasebelumnya,namunintinyaperintahdiatasadalahuntukmembuatdatabaseuniversitas,dantabelmahasiswa_ilkom.Setelahtabelterbentuk,kemudiansayamenambahkanbeberapadatakedalamtabeltersebut.

    Daricontohdiatas,andajugadapatmelihatcarapembuatandatabase,pembuatantabel,dancaramemasukkannilaikedalamdatabase.Semuanyadijalankandenganfungsimysql_query().

    JikaandasudahpahamtentangqueryMySQL,perintahquerydiatastentunyatidakterlalusulituntukdipahami.Namunjikaragutentanginstruksiqueryyangsayagunakan,andabisamempelajarinyaditutorialMySQLduniailkom.

    FungsifungsiPHPyangsayagunakanjugatelahkitapelajaripadatutorialsebelumnya.TambahanbarumungkinadapadapenggunaanlogikaIFuntukmenanganifungsiyanggagal.Sayamenggunakaninstruksi(!$result)untukmasukpadafungsidie()jikafungsitersebutgagaldijalankan.

    Sebagaicontoh,jikaandamenjalankankodediatassebanyak2kali,makaakantampilpesanDatabasemahasiswagagaldibuat.HaliniterjadikarenaterdapatduplikasidatabasedidalamMySQL,sehinggakodePHPakanberhentipadabariske15karenafungsidie().

    CaraMenampilkanBarisTabelDenganFungsimysql_fetch_rowSetelahtabelcontohselesaidibuat,saatnyakitamencobamenampilkandatadaritabelmahasiswa_ilkomdenganfungsimysql_fetch_row().

    Carapalingdasaruntukmenampilkandatadarimysqladalahsepertikodeprogramberikutini:

    5253545556

    $query="INSERTINTOmahasiswa_ilkomVALUES('099145055','NeilSitumorang',22,'Medan',1.9)";mysql_query($query);$query="INSERTINTOmahasiswa_ilkomVALUES('089023013','AlexSupriyanto',23,'Surabaya',2.9)";mysql_query($query);$query="INSERTINTOmahasiswa_ilkomVALUES('109223041','RaniSabrina',21,'Padang',3.7)";mysql_query($query);echo"DatabaseuniversitasdanTabelmahasiswa_ilkomberhasildibuat";?>

    12

  • Kodeprogramdaribaris1sampaibaris16merupakanpersiapanuntukmengkoneksikanMySQLdanmemilihdatabaseuniversitas.

    Perhatikanpadabariske12,dimanasayamenjalankanqueryUSEuniversitas.QueryiniditujukanuntukmemberitahuMySQLbahwakitaakanmenggunakandatabasemahasiswa.Alternatifpenulisanmysql_query(USEuniversitas)adalahdenganmenggunakanfungsimysql_select_db(universitas).Andabebasinginmenggunakansalahsatunya.

    Padabariske20sayamenjalankanquerySELECTuntukmenampilkanseluruhisitabelmahasiswa_ilkom.Caramenjalankannyaadalahdenganfungsimysql_query()denganperintahquery:SELECT*FROMmahasiswa_ilkom.Hasilfungsiditampungkedalamvariabel$result.

    345678910111213141516171819202122

    $link=mysql_connect('localhost','root','');//jikakoneksigagal,langsungkeluardariPHPif(!$link){die("KoneksidenganMySQLgagal");}//gunakandatabaseuniversitas$result=mysql_query('USEuniversitas');if(!$result){die("Databasemahasiswagagaldigunakan");}//tampilkantabelmahasiswa_ilkom$result=mysql_query('SELECT*FROMmahasiswa_ilkom');$row=mysql_fetch_row($result);echo"$row[0]$row[1]$row[2]$row[3]$row[4]";?>

    www.

    dunia

    ilkom.

    com

    21

  • Variabel$resultselanjutnyadiprosesdenganfungsimysql_fetch_row($result),dandisimpandalamvariabel$row.

    Sepertiyangtelahkitapelajari,bahwafungsimysql_fetch_row()akanmenyimpanhasilquerysebagaiarraydengankeyadalahurutankolommulaidarikeyke0untukkolomke1tabel,$row[1]untukkolomke2,danbegituseterusnya.Karenatabelmahasiswa_ilkomhanyamemiliki5kolom,maka$row[4]adalahkolomterakhir.

    CaraMenampilkanSeluruhTabelDenganFungsimysql_fetch_rowSesuainamanya,fungsimysql_fetch_row()hanyaakanmenampilkanbarisperbaris,jadibagaimanacaranyauntukmenampilkanseluruhtabelmahasiswa_ilkom?Caranyaadalahdenganmengulangfungsimysql_fetch_row()sebanyakjumlahbarisyanginginditampilkan.

    Sehinggacontohprogramkitamenjadisebagaiberikut:

    1234567891011121314151617181920212223242526272829

    www.

    dunia

    ilkom.

    com

    22

  • Padacontohdiatas,sayamenghapusbarisfungsidie()sematamataagarcontohprogramkitatidakterlalupanjang.

    Kodeprogramdiatasberjalansebagaimanadenganseharusnya,karenapadasetiappemanggilanfungsimysql_fetch_row(),PHPakanmenggeserpenunjukbarisMySQLkebarisberikutnyadidalamtabel.Sehinggauntukpemanggilanmysql_fetch_row()ke2posisipointerMySQLakanberadadibariske2daritabel,danbegituseterusnyahinggapemanggilanmysql_fetch_row()ke5.

    MenampilkanTabelMySQLDenganPerulanganForNamunjikaandaperhatikan,fungsimysql_fetch_row()yangditulissecaraberulangulangpadacontohsebelumnyamerupakanpekerjaanyangcocokuntukfungsiperulangan.Sehinggadenganmenggunakanperulanganfor,kodekitaakanmenjadilebihmudahditulis.

    Fungsidiatasakanmenampilkanseluruhbarisyangadadidalamtabelmahasiswa_ilkomdenganmelakukanperulanganfungsimysql_fetch_row()sebanyak5kali.

    12345678910111213141516

    www.

    dunia

    ilkom.

    com

    23

  • Namunmasihada1hallagiyangbisakitaperbaikidariprogramdiatas.

    MenampilkanTabelMySQLDenganPerulanganWhilePerulanganformengharuskankitauntukmenulislangsungjumlahperulanganyangharusdilakukan.Padasaatpenulisanprogram,kitatelahmengetahuibahwatabelmahasiswa_ilkomberisi5baris,Namunbagaimanajikaternyatadatadidalamtabelsaatinitidaklagi5,tetapisudahlebihdariitu?

    Untukperulangandimanabanyaknyaperulangantidakdiketahuipadasaatpenulisanprogram,kitabisaberalihkeperulanganwhile(TutorialCaraPenulisanPerulanganWhiledalamPHP).

    Untukmembuathalinimenjadilebihmudah,fungsimysql_fetch_row()akanmengembalikannilaiFALSEjikapointertelahberadadibaristerakhirtabelMySQL.Nilaikembalianinimenjadivariabelyangtepatuntukkondisiberhentipadaperulanganwhile.

    Berikutadalahcontohprogrampenggunaanmysql_fetch_row()denganperulanganwhile:

    KonsepperulanganwhilesepertidiatasakanseringandalihatuntukmenampilkandatadaridatabaseMySQL.

    Selainmenggunakanfungsimysql_fetch_row(),PHPmasihmemilikifungsilainnyauntukmenampilkandatatabeldariMySQL,salahsatunyaadalahfungsimysql_fecth_array().

    Fungsimysql_fecth_array()lebihfleksibelkarenakitatidakhanyabisamenggunakanangka,namunjuganamakolomsebagaikeyarray.Pembahasantentangfungsimysql_fecth_array()akankitapelajaridalamtutorialselanjutnya:CaraMenampilkanTabelMySQLdariPHP(mysql_fetch_array().

    123456789101112131415

    ww

    w.du

    niailko

    m.co

    m

    24

  • MenampilkanTabelMySQLdenganfungsimysql_fetch_arrayFungsimysql_fetch_array()padadasarnyahampirsamadenganfungsimysql_fetch_row(),namunfungsimysql_fetch_array()memberikanalternatifcaramenampilkandataMySQLdenganlebihmudah.

    Jikadalamfungsimysql_fetch_row()hasilfungsinyaberupaarraydengankeyatauindexnyaberupaangka,seperti:$row[1],$row[2]dan$row[3],makadidalammysql_fetch_array(),kitabisamenggunakannamakolomdaritabelMySQLsebagaikeyatauindexarraysepertiberikutini:$row[nim],$row[nama]dan$row[umur].Carapenulisansepertiiniakanmemudahkanpembuatanprogram.

    Selainmenggunakannamakolompadaindexarray,fungsimysql_fetch_array()jugabisamenggunakanindexpenomorankolomsepertimysql_fetch_row(),ataubahkankeduanyasekaligus.Untukmengaturfiturini,fungsimysql_fetch_array()membutuhkanparametertambahan.

    Berikutadalahformatdasarpenulisanfungsimysql_fetch_array()dalamPHP:

    $rowadalahvariabelyangakanmenampunghasilfungsimysql_fetch_array().Hasildarifungsimysql_fetch_array()berupatipedataarraydengankeyyangbergantungkepadakonstantatipe_hasil.

    $resultadalahvariabelhasilmenjalankanqueryMySQLyangberasardarifungsimysql_query().

    tipe_hasilmerupakankonstantaopsionalyangdigunakanuntukmengaturindexarraydarihasilfungsimysql_fetch_array().Konstantayangbisadigunakanadalahsalahsatudariketiganilaiberikut:MYSQL_NUM,MYSQL_ASSOCatauMYSQL_BOTH.Jikaargumeninitidakditulis,nilaidefaultnyaadalahMYSQL_BOTH.

    Perbedaanmysql_fetch_array:MYSQL_NUM,MYSQL_ASSOCdanMYSQL_BOTHCaramengaksesarraydarifungsimysql_fetch_array()bergantungkepadaargumentipe_hasil.Argumentipe_hasilhanyabisaberisisatudari3konstanta:MYSQL_NUM,MYSQL_ASSOCatauMYSQL_BOTH.

    Jikaargumenkeduadarifungsimysql_fetch_array()diisiMYSQL_NUM,makaindexarrayakanmenjadiangka(samasepertihasilmysql_fetch_row()),danbisaditampilkanseperti:$row[1],$row[2]dan$row[3].

    $row=mysql_fetch_array($result,[tipe_hasil])

    www.

    dunia

    ilkom.

    com

    25

  • JikaargumenkeduadiisiMYSQL_ASSOC,indexarrayakanmenjadinamakolom,danbisaditampilkanseperti:$row[nim],$row[nama]dan$row[umur].

    Opsiketiga,jikaargumendiisiMYSQL_BOTHmakaindexarraymendukung2pemanggilan,yakniberupaangkadannamakolom.

    Samasepertifungsimysql_fetch_row(),mysql_fetch_row()hanyamembaca1barispadasekalipemanggilan.Jikatabelkitaterdiridari5baris,makafungsimysql_fecth_array()harusdiulangsebanyak5kali(ataumenggunakanmetodaperulanganwhilesepertiyangkitalakukanpadatutorialmysql_fetch_row().

    CaraPenggunaanFungsimysql_fecth_array()Agarlebihmudahdipahami,langsungsajakitamasukkedalamcontohkodeprogram.Masihmenggunakancontohdatabaseuniversitasyangdibuatpadatutorialmysql_fetch_row(),kaliinisayaakanmenggunakanfungsimysql_fetch_array()untukmenampilkanhasilnya.

    Berikutadalahcontohpenggunaanfungsimysql_fetch_array()dalamPHP:

    123456789101112131415

    www.

    dunia

    ilkom.

    com

    26

  • Dalamcontohdiatas,baris16merupakankodeprogramuntukmembuatkoneksidenganMySQL.Padabariske9,sayamembuatquerySELECT*FROMmahasiswa_ilkomyangakanmengembalikanseluruhisitabelmahasiswa_ilkom.

    Jikadiperhatikan,kodeprogramdiatassamapersisdengancontohterakhirpadatutorialmysql_fetch_row(),hanyapadabariske10sayamenggantinyadenganfungsimysql_fetch_array().

    KonstantaMYSQL_NUMpadaargumenke2fungsimysql_fetch_array(),menginstruksikankepadaPHPbahwanilaikembalianuntukvariabel$rowadalaharraydenganindexangka,sehinggahasilnyasamapersisdenganmysql_fetch_row()yangdiaksesdengan$row[0]untukkolompertamatabel,$row[1]untukkolomkeduatabel,danseterusnya.

    JikamenggunakankonstantaMYSQL_NUMakanmembuatfungsimysql_fetch_array()samadenganmysql_fetch_row(),bagaimanadenganMYSQL_ASSOC?Dalamcontohberikut,sayaakanmengubahkonstantafungsimysql_fetch_array()denganMYSQL_ASSOC:

    12345678910111213141516

    www.

    dunia

    ilkom.

    com

    27

  • Padacontohkaliini,padabariske10,fungsimysql_fetch_array()sayapanggildengankonstantaMYSQL_ASSOCsebagaiargumenkedua.Dengancaraini,hasilkembalianquery,berupaarraydenganindexnamakolomdaritabelMySQL.

    KarenamenggunakankonstantaMYSQL_ASSOC,carapengaksesannilai$rowharusmenggunakanindexnamakolomtabel.JikadidalamMySQLnamakolomadalahnim,makauntukmenampilkandatakolomtersebut,kitamenggunakan$row[nim].JikadidalamMySQLnamakolomadalahtempat_lahir,untukmenampilkandatakolomtersebut,adalahdengan$row[tempat_lahir],danseterusnya.

    Dengancaraini,kitaakanmudahuntukmerancangtampilantabelMySQL,terutamajikaurutankolomtidakditampilkansecaraberurutan.

    Untukpilihankonstantaterakhir:MYSQL_BOTH,MySQLakanmengembalikannilai$rowyangbisadiaksesbaikdenganindexangkamaupundenganindexnamakolom.Berikutadalahcontohkodeprogramnya:

    Sepertiyangterlihat,sayamembuatperintah$row[0]dan$row[nama]dalampemanggilanyangsama,danPHPdapatmenampilkanhasilsesuaidenganyangdiharapkan.

    Perludiketahui,padapanduanresmiPHP,fungsimysql_fetch_array()ditegaskantidakakanlebihlambatdaripadafungsimysql_fetch_row(),walaupunfungsimysql_fetch_array()menawarkanfiturtambahan.PengaksesanarrayhasilMySQLdenganmenggunakanangkamaupunnamaakansamacepatnya.

    Padadasarnya,pengaksesanMySQLmelaluiPHP,hanyamembutuhkan3fungsiutama,yaknimysql_connect(),mysql_query(),danmysql_fecth_array().Sampaidisini,kitatelahmempelajariketigafungsipentingtersebut.

    12345678910111213141516

    ww

    w.du

    niailko

    m.co

    m

    28

  • Dalamtutorialselanjutnya,kitaakanmempelajaricaramenampilkanpesanerrordariMySQLketikaqueryyangdijalankantidaksesuai.

    www.

    dunia

    ilkom.

    com

    29

  • CaraMenampilkanPesanErrorMySQLdalamPHPAgarlebihinformatif,ketikaquerytidakberjalandengansemestinya,PHPmenyediakan2buahfungsiuntukmenampilkanpesanerrordariMySQL,yaitufungsimysql_errno()danmysql_error().Keduafungsiinimembutuhkan1buahargumenyangbersifatopsional,yaknivariabelhasilpemanggilanfungsimysql_connect().Namunjikaargumentidakditulis,PHPakanmenggunakankoneksiMySQLterakhiryangtersedia.

    Fungsimysql_errno()akanmenampilkannomorataukodeerrorMySQL,sedangkanfungsimysql_error()akanmenampilkanpenjelasanerrortersebut.

    ContohPenggunaanFungsimysql_errnodanmysql_errorSebagaicontohpenggunaankeduafungsitersebut,silahkanjalankankodeprogramberikutini:

    12345678910111213141516171819

    www.

    dunia

    ilkom.

    com

    30

  • Padakodediatas,sayamencobamenjalankanperintahuntukmenghapusdatabasetidak_adayangmemangtidaktersediadidalamMySQL.Jikakitamenjalankanquerytersebuttanpabantuanfungsimysql_errno()danmysql_error(),makakitatidaktahuapapesanerrordariMySQL.

    Perhatikanjugabahwapadapemanggilanfungsimysql_error()padabaristerakhir,sayatidakmemberikanargumen,karenasifatnyayangopsional.

    www.

    dunia

    ilkom.

    com

    31

  • CaraPenggunaanFungsimysql_num_rowsFungsimysql_num_rows()digunakanuntukmengetahuiberapabanyakjumlahbarishasilpemanggilanfungsimysql_query().Fungsiinimembutuhkan1buahargumen,yaknivariabelresourceshasildarifungsimysql_query().

    Berikutadalahcontohpenggunaannya:

    Jikakodediatasdijalankan,hasilyangdidapatadalahsebagaiberikut:

    CaraPenggunaanFungsimysql_affected_rowsFungsimysql_affected_rows()digunakanuntukmengetahuijumlahbaristabelyangdikenaiprosesolehqueryMySQL.Hasilinibiasanyadiperlukanjikakitainginmengetahuidenganlebihdetailtentangprosesyangberlangsung.

    Sebagaicontoh,kitainginmelakukanoperasiDELETEkepadasebuahtabel.Halinibisadilakukandenganfungsimysql_query.Namunkitatidakbisamengetahuiberapajumlahbarisyangtelahdihapus.

    JikamenggunakanMySQL,informasiiniditampilkanlangsungsetelahquery:

    123456789101112131415161718192021

    1 Totalmahasiswaberjumlah5orangwww.

    dunia

    ilkom.

    com

    32

  • UntukmengambilinformasiinidariPHP,kitamenggunakanfungsimysql_affected_rows().Berikutadalahcontohpenggunaannya:

    Dan,hasilyangditampilkanadalah:

    Baikfungsimysql_num_rowsdanmysql_affected_rowsseringdigunakandidalamsituasidimanakitamembutuhkaninformasiterkaitqueryMySQLyangdijalankan.KeduafungsiinimelengkapifungsifungsilainyangtelahkitapelajarididalamtutorialPHPMySQLini.

    123456789101112131415161718192021

  • PadatutorialPHPMySQLselanjutnya,kitaakanmembahascaramenampilkantabelMySQLdenganmenggunakanobjek(fungsimysql_fetch_object).

    www.

    dunia

    ilkom.

    com

    34

  • PenggunaanObjekuntukMenampilkandataMySQLFungsimysql_fetch_rowdanmysql_fetch_arrayyangtelahkitapelajarisebelumnya,menggunakanarrayuntukmenampunghasilqueryMySQL.Sebagaicontoh,untukmenampilkanhasiltabelmahasiswa_ilkomdenganfungsimysql_fetch_array,kitamengaksesnyadengancaraberikut:

    Dengankatalain,namakolomberfungsisebagaikeydariarray$row.

    Selainmenggunakanarray,PHPjugamenyediakanfungsimysql_fetch_objectjikakitainginmengakseshasilquerymenggunakannotasiobjek.Namakolomakanberfungsisebagaipropertydariobjek$row.Menggunakancontohtabelmahasiswa_ilkom,makacaramengaksesnyaadalahsebagaiberikut:

    Karaktertandapanah(>)digunakanuntukmengaksespropertydarisebuahobjekdidalamPHP.

    MengenaipemrogramanberbasisobjekdidalamPHP,duniailkomtelahmembuattutoriallengkapjikaandainginmempelajariOOPPHP.SilahkanmengunjungiTutorialOOPPHP:PemrogramanBerbasisObjekdenganPHP.

    CaraPenggunaanFungsimysql_fetch_objectSelainperbedaancaraaksesdiatas,carapenggunaanfungsimysql_fetch_objectuntukmenampilkantabelMySQL,hampirsamadenganfungsimysql_fetch_rowdanmysql_fetch_array.

    Berikutadalahmodifikasikodeprogramyangsebelumnyakitagunakanpadatutorialmysql_fetch_arrayuntukmenampilkanseluruhisitabelmahasiswa_ilkom:

    1 $row['nim'],$row['nama'],$row['umur'],$row['tempat_lahir'],dan$row['IPK']

    1 $row>nim,$row>nama,$row>umur,$row>tempat_lahir,dan$row>IPK

    12345678910111213141516

  • Jikaandatelahmempelajaritutorialmysql_fetch_arraydiduniailkomsebelumnya,makakodediatassangatmirip.Sayahanyamengubahfungsimysql_fetch_arraydenganmysql_fetch_object,lalumelakukanpenyesuaianuntukpengaksesanpropertyobjek$row.

    PengaksesandenganobjekiniakanlebihlengkapapabilakitamenggunakanextensionmysqliatauPDO.Keduametodeiniakankitapelajaridalamtutorialterpisahnantinya.

    Menutupcarapenggunaanmysqlextension(sebelumkitamasukkemysqliextension),dalamtutorialberikutnyasayaakanmencobamenkombinasikanHTML,CSS,PHPdanMySQLuntukmenampilkandatadengantampilanyangmenarik.SelanjutnyadalamTutorialPHPMySQL:CaraPenyajianDataMySQLdalambentuktabelHTMLdenganCSS.

    17181920212223242526

    digunakan");}//tampilkantabelmahasiswa_ilkom$result=mysql_query('SELECT*FROMmahasiswa_ilkom');while($row=mysql_fetch_object($result)){echo$row>nim."".$row>nama."".$row>umur."";echo$row>tempat_lahir."".$row>IPK;echo"";}?>

    www.

    dunia

    ilkom.

    com

    36

  • MenyajikanDataMySQLdenganTabelHTMLdanCSSUmumnya,hasilqueryMySQLyangkitaambildaridatabaseakanditampilkankedalambentuktabel.DenganmengkombinasikanPHP,MySQL,HTMLdanCSS,kitabisamenampilkandatatabelMySQLdengandesainyangberagam.DalamtutorialPHPMySQLini,sayaakanmencobamenampilkantabelmahasiswa_ilkomdengantampilanakhirsepertigambarberikut:

    TampilandiatasdidapatdenganmengkombinasikanPHP,MySQL,HTMLdanCSS.Danberikutadalahkodeprogramyangdigunakan:

    1234567891011121314151617181920212223

    www.

    dunia

    ilkom.

    com

    37

  • Kodediatasterasapanjang,terutamakarenadalamtutorialPHPMySQLsebeluminisayatidak

    24252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

    BelajarPHPMySQLh3{textalign:center;}table{bordercollapse:collapse;borderspacing:0;fontfamily:Arial,sansserif;fontsize:16px;paddingleft:300px;margin:auto;}tableth{fontweight:bold;padding:10px;color:#fff;backgroundcolor:#2A72BA;bordertop:1pxblacksolid;borderbottom:1pxblacksolid;}tabletd{padding:10px;bordertop:1pxblacksolid;borderbottom:1pxblacksolid;textalign:center;}tr:nthchild(even){backgroundcolor:#DFEBF8;}

    PenyajianDataMySQLdalambentuktabelHTMLdenganCSS

    NIMNamaUmurTempatLahirIPK

    www.

    dunia

    ilkom.

    com

    38

  • menggunakanHTMLdanCSS.

    KodePHPyangsayagunakandarikodeprogramdiatassamapersisdenganyangadadidalamtutorialPHPMySQLtentangmysql_fetch_array.AkantetapikaliinihasilnyadiletakkandidalamtabelHTML.

    KoneksiPHPdenganMySQLdanjugafungsimysql_query()sayaletakkansebelumkodeHTML.HaliniumumdigunakanuntukmemisahkanPHPdenganHTML.

    KodeCSSuntuktabelsayaletakkandibagian.KodeCSSdigunakanuntukmengubahbordertabel,warnabackgroud,padding,danukuranfont.Yangcukupmenarikadalahselectortr:nthchild(even).SelectorCSS3inidigunakanuntukmendapatkanefekzebradidalamtabel,ataudikenaldenganstrippedtable.Fiturinidigunakanagarsetiapbaristabelbisadibacadenganmudahkarenamemilikiwarnayangberbeda.

    Didalamperulanganmysql_fetch_array(),hasildaritiapiterasiditempatkandidalamtag,sehinggalangsungmenyatudenganseltabel.

    AndabisaberkreasidenganmengubahubahkodeHTMLatauCSSdiatasuntukmendapatkanhasilyangsesuai.

    DuniailkomtelahmembuattutoriallengkapmengenaiTabelHTML,danCSSDasar.JikaandakurangmemahamitentangkodeHTMLdanCSSyangdigunakanpadatutorialkaliini,janganraguuntukmempelajarinya.

    DalamtutorialPHPMySQLberikutnya,kitaakanmulaimembahastentangmysqliextensiondidalampemrogramanPHP.

    www.

    dunia

    ilkom.

    com

    39

  • PerbedaanAntaramysqlextensionDenganmysqliextensionSepanjangtutorialPHPMySQLPart4sampai11diduniailkomini,kitamenggunakanextensionmysqldariPHPuntukmengaksesMySQL.Fungsifungsiyangkitapelajaritersebut(sepertifungsimysql_connect,mysql_query,danmysql_fetch_array)memangsudahtidakdisarankanlagi,tetapisayatetapmembahasnyasebagaidasarbagikitauntukmasukkeextensionyanglebihmodern:mysqlidanPDO.

    TerhitungdariPHPversi5.5,extensionmysqltidaklagidisarankanpenggunaannyadanberstatusdeprecated,yangberartimungkinakandihapuspadaPHPversiberikutnya.ProgrammerdisarankanuntukberalihmenggunakanmysqliatauPDO.Dalamtutorialkaliinikitaakanmembahasmysqliterlebihdahulu.

    MysqlimerupakankependekandariMySQLImprovedExtension.Sepertiyangterlihatdarinamanya,extensioninimerupakanversiperbaikandanpenambahandariextensionmysqlsebelumnyayangumumdigunakan.ExtensionmysqlidibuatuntukmendukungfiturfiturterbarudariMySQLServerversi4.1keatas.

    Secaragarisbesar,tidakadaperbedaanmencolokantaramysqlextensiondenganmysqliextension.Namanamafungsididalammysqlisebagianbesarmiripdenganapayangtelahkitapelajari(extensionmysql).

    Sebagaicontoh,untukmembuatkoneksidenganMySQLServer,didalammysqlkitamenggunakanfungsimysql_connect(),sedangkandidalammysqli,kitamenggunakanmysqli_connect().Begitujugadenganfungsilainsepertimysql_query()menjadimysqli_query().

    Selainmenambahhurufididalamnamafungsi,argumenargumenyangdibutuhkanjugahampirmirip.Perbedaannya,jikadidalamextensionmysqlumumnyakitameletakkanargumenresourcesdiakhirfungsi,makadidalammysqli,argumeniniditeletakkandiawal.

    Sebagaicontoh,didalammysqlkitamenulis:

    Sedangkandidalammysqlipenulisannyamenjadi:

    Namunperbedaanpalingmendasardidalammysqliadalah:mysqlimendukungcarapenulisanobjectorientedprogramming.

    Mengenal2jenisMysqliStyle:ProceduraldanObject

    1 mysql_query("SELECT*FROMmahasiswa_ilkom",$link)

    1 mysqli_query($link,"SELECT*FROMmahasiswa_ilkom")

    www.

    dunia

    ilkom.

    com

    40

  • OrientedAgarprosesmigrasidarimysqlkemysqlitidakterlalumenyusahkan,PHPmemberikan2alternatifcarapenulisanmysqli.

    Carayangpertamaadalahmenggunakanproceduralstyle.Carainimiripdenganextensionmysql,dimanakitamenggunakanfungsifungsiuntukmengaksesdatabaseMySQL.

    Carakeduaadalahdenganobjectorientedstyle.Dengancaraini,kitamenggunakanaturanpenulisanpemrogramanobjekuntukberkomunikasidenganMySQL.

    Keduajenisstylepemrogramanmysqliinimenggunakannamafungsidanmethodyangkuranglebihsama.Sebagaicontoh,didalamproceduralstylemysqli,terdapatfungsimysqli_query(),sedangkandalamOOPstylemysqli,kitamenggunakanmethod$mysqli>query().Kitaakanmembahaslebihdalamtentangcarapenggunaan2styleininantinya.

    DidalamtutorialPHPMySQLkaliinikitatelahmembahasperbedaanextensionmysqldenganextensionmysqliyanglebihbaru.SesuaidenganinstruksidarimanualMySQL,sebaiknyakitatidakmenggunakanlagiextensionmysql.

    Dalamtutorialselanjutnya,kitaakanmulaimembahascarapenggunaanmysqliextension.BerikutnyadalamtutorialPHPMySQLduniailkom:CaraMenampilkanDatadenganmysqliPHPmenggunakanproceduralstyle.

    www.

    dunia

    ilkom.

    com

    41

  • CaraMembuatKoneksiMySQLDenganFungsimysqli_connect()UntukmembuatkoneksiantaraPHPdenganMySQLServer,kitamenggunakanfungsimysqli_connect().Fungsimysqli_connect()inimembutuhkanargumenyangsamadenganfungsimysql_connect(),yakni:alamathost,namauser,danpassworduser.

    Sebagaicontoh,untukmasukkedalamMySQLdilocalhostmenggunakanuserrootdandenganpasswordqwerty,kitamenggunakankodeprogramsebagaiberikut:

    Sebagaifiturtambahan,fungsimysqli_connect()memilikiargumenke4yangbersifatopsional.Kitabisamenambahkannamadatabaseyangingindigunakan.MisalkankitainginsewaktuproseskoneksidenganMySQL,langsungmemilihdatabaseuniversitas,makacontohpenulisannyaadalahsebagaiberikut:

    CaraMenutupKoneksiDenganFungsimysqli_close()WalaupunPHPakanmenutupkoneksidenganMySQLpadasaathalamanselesaidiproses,kitabisamenutupnyasecaramanualmenggunakanfungsimysqli_close().Fungsiinimembutuhkan1argumen,yaknivariabelresourceshasilpemanggilanfungsimysqli_connect().

    Berikutcontohpenggunaanfungsimysqli_close():

    CaraMenjalankanQueryMySQLDenganFungsimysqli_query()

    123

    123

    1234567891011

    www.

    dunia

    ilkom.

    com

    42

  • CaramenjalankanqueryMySQLdenganmysqliextensionjugamiripdenganmysqlextension.Didalammysqli,kitamenggunakanfungsimysqli_query().Namunberbedadenganfungsimysql_query()yangmeletakkanvariabelresourceshasilmysql_connect()sebagaiargumenkeduadanbersifatopsional,didalamfungsimysqli_query(),variabelinidiletakkansebagaiargumenpertamadanharusditulis.

    Sebagaicontoh,denganmenggunakanmysql_extension,kitabiasamenuliskodePHPsebagaiberikut:

    Sedangkandenganmenggunakanmysqliextension,berikutadalahperubahancarapenggunaannya:

    Perhatikanbahwakitamenggunakanformat:mysqli_query($link,query_MySQL)untukmenjalankanqueryMySQL.

    CaraMenampilkanDataMySQLDenganmysqliUntukmenampilkanhasilqueryMySQL,mysqliextensionmemilikibanyakfungsi.Kaliinikitaakanmembahas3fungsiyangpalingseringdigunakan:mysqli_fetch_row(),mysqli_fetch_array(),danmysqli_fetch_object().

    Ketigafungsiinihampirsamacarapenggunaannyadenganversimysqlextensionyangtelahkitabahas,yakni:mysql_fetch_row(),mysql_fetch_array(),danmysql_fetch_object().Jikaandaperhatikan,perbedaannamanyahanyadenganmenambahhurufi.

    Langsungsajakitamasukkecontohprogram,untukmemahamicarapenggunaanketigafungsiini.Didalamcontohcontohberikutsayamenggunakantabelmahasiswa_ilkomdidalamdatabaseuniversitas.Tabelinikitabuatsewaktumembahastentangfungsimysql_fetch_row.

    12345678910

    1234567

    www.

    dunia

    ilkom.

    com

    43

  • Pertama,marikitalihatcaramenampilkandataMySQLdenganfungsimysqli_fetch_row():

    Fungsimysqli_fetch_row()samapersiscarapenggunaanyadenganfungsimysql_fetch_row(),olehkarenaitusayatidakakanmembahasnyalagi.Tapijikaandaragu,bisamengunjungitutorialnyadiCaraMenampilkanTabelMySQLdariPHPdenganfungsimysql_fetch_row.

    Berikutnya,kitabahascaramenampilkandataMySQLdenganfungsimysqli_fetch_array():

    Sedikitperbedaanantarafungsimysqli_fetch_array()denganfungsikembarannyamysql_fetch_array(),kaliinistringpenentumetodaarrayberadapadaargumenkedua.Argumenpertamaadalahvariabelresourceshasilpemanggilanfungsimysqli_query().StringMYSQLI_ASSOCdigunakanagarkeyarraydapatdiaksesdengannama.StringlainyangbisakitagunakanadalahMYSQL_NUMdanMYSQL_BOTH.PerbedaanketiganyatelahkitabahaslengkapdalamTutorialPHPMySQL:CaraMenampilkanTabelMySQLdariPHPdenganmysql_fetch_array.

    1234567891011121314

    123456789101112131415

    www.

    dunia

    ilkom.

    com

    44

  • Caraketigayangakankitabahasadalahdenganmenggunakanfungsimysqli_fetch_object().Fungsiinisamadenganfungsimysql_fetch_object(),dimanakitamengakseshasilquerysebagaiobjek.BerikutadalahcontohkodePHPnya:

    Jikaandabutuhpenjelasanmengenaicarapenggunaanmysqli_fetch_object(),silahkankunjungiTutorialPHPMySQL:CaraMenampilkanTabeldenganobjek(mysql_fetch_object).

    DalamtutorialPHPMySQLkaliinikitatelahmembahastentangcarapenggunaanmysqliuntukmenampilkandatadaridatabaseMySQL.

    Sepertiyangpernahkitabahas,mysqlimemiliki2carapenulisan(2jenisstyle).Selaindengancaraproceduralsepertidalamtutorialini,didalamtutorialselanjutnyakitaakanmembahascarapenggunaanmysqlidenganobjectorientedstyle.

    123456789101112131415

    www.

    dunia

    ilkom.

    com

    45

  • CaraPenulisanObjectStylemysqliSebagaicarakoneksiyanglebihbarudaripadamysqlextension,mysqlimemiliki2jenisstyle,yakniproceduralstyledanobjectorientedstyle.Kecendrunganpemrogramansaatinilebihbanyakmenggunakanobjek.UntukhalinilahPHPjugamenyediakanmysqlidenganrasaobjek.

    Pemrogramanberbasisobjeklebihbanyakdisukaikarenacenderungrapidanmudahdikembangkan,terutamajikakitamengerjakanproyekbesaryangbutuhribuanbarisprogram.KonsepOOPsepertiinheritance,encapsulationdanpolymorfismmembuatprogrammenjadilebihtertata.

    JikaandabaruberkenalandenganPHPataukonseppemrogramansecaraumum,pemrogramanberbasisobjekmungkinakanterasamembingungkan.OOPmembutuhkanalurpenulisanprogramyangberbedadibandingkanmetodeproceduralyangkitapelajarihinggasaatini.

    SayasangatmenyarankanandauntukmulaiberalihmenggunakanOOP.KarenadenganOOPlahtingkatpemahamandanpengalamankitanaiklevel.JikaandabermaksudseriusmempelajaritentangPHP,duniailkomtelahmembuattutoriallengkapmengenaikonsepOOP,didalamTutorialPemrogramanBerbasisObjekPHP.

    Langsungsajakitalihatbagaimanacarapenggunaanobjekdidalammysqli.

    DidalamtutorialinisayaberasumsiandatelahmemahamisedikittentangOOPPHP.Terutamacarapemanggilanconstructor(carapembuatanobjek)dancarapemanggilanmethodobjek(menggunakantandapanah>).

    CaraMembuatKoneksidenganMySQL(mysqliconstructor)UntukmembuatkoneksiMySQLdenganPHPmenggunakanmysqliobjectstyle,caranyaadalahdenganmenggunakanmysqliconstructor.Constructormysqliadalahsejenisfungsiyangdigunakanuntukmembuatobjectbarudariclassmysqli.

    Argumendidalamconstruktormysqliinisamapersisdenganargumenfungsimysqli_connect(),yaknilokasikomputer,namauser,danpassworduser.

    Berikutadalahcaramembuatkoneksimysqlidilocalhostuntukuserrootdenganpasswordqwerty:

    123

    www.

    dunia

    ilkom.

    com

    46

  • Padakodediatas,sayamembuatobjek$linkdariclassmysqli.DidalamOOP,keywordnewdigunakanuntukmembuatobjekbaru.Denganobjek$linkhasilmysqliconstructorinilahprosesqueryMySQLnantinyakitajalankan.

    Samasepertifungsimysqli_connect(),constructormysqlijugamemilikiargumentambahan,yakninamadatabaseyangingindigunakan.Jikakitainginlangsungmengaksesdatabaseuniversitas,makakodeprogramnyamenjadi:

    CaraMenutupKoneksiMySQLDenganMethodmysqli::close()WalaupunPHPakanlansungmenutupkoneksikeMySQLjikahalamantelahselesaidiproses,namunkitajugabisamenutupnyasecaramanualmenggunakanmethodclose()dariobjekmysqli,ataubiasaditulissebagaimysqli::close().Berikutcontohpenggunaannya:

    CaraMenjalankanQueryMySQLDenganMethodmysqli::query()Jikadidalampenulisanproceduralkitamenggunakanfungsimysqli_query()untukmenjalankanqueryMySQL,makadidalamobjekstyle,kitamengaksesnyamenggunakanmethodmysqli::query().

    Agarlebihmudahdipahami,langsungsajakitamasukkedalamcontohkodeprogram:

    123

    1234567891011

    1234567

  • Perhatikanbahwadidalamprosespemanggilanmethodquery(),kitamembutuhkan1argumen,yakniqueryMySQLyangakandijalankan.

    CaraMenampilkanDataMySQLDenganmysqliobjectstyleUntukmenampilkanhasilqueryMySQL,mysqliobjectmemilikibanyakmethod.Kaliinikitaakanmembahas3carayangpalingseringdigunakan,yaknimethodfetch_row(),fetch_array()danfetch_object().Carapenggunaanketigamethodinihampirsamadenganpadananfungsinyadiproceduralstyle,yaknidenganfungsimysqli_fetch_row(),mysqli_fetch_array(),danmysqli_fetch_object().

    Agarlebihjelas,langsungsajakitamasukkedalamcontohkodeprogramuntukmenampilkanseluruhisidatadaritabelmahasiswa_ilkom.

    Pembahasanpertama,yaknicaramenampilkandatamysqlidenganmethodfetch_row().Berikutadalahcontohkodeprogramnya:

    Dalamcontohdiatas,sayamengunakanmethodfetch_row()dariobjek$resultyangmerupakanobjekhasilpemanggilanmethodquery().Methodfetch_row()initidakmemerlukanargumenapapun,sehinggakitamemanggilnyadengancara$result>fetch_row().

    Carakeduauntukmenampilkandatamysqliadalahdenganmethodfetch_array().Berikutcontohkodeprogramnya:

    $result=$link>query("SELECT*FROMmahasiswa_ilkom");?>

    1234567891011121314

    123

  • Samasepertimethodfetch_row(),methodfetch_array()jugadiaksesdariobjek$resultyangmerupakanhasilpemanggilanquery.

    Methodfetch_array()membutuhkan1argumen,berupastringyangberisibagaimanacaraarrayhasilmethodakandiakases.Stringinibisadipilihdarisalahsatunilai:MYSQL_NUM,MYSQL_ASSOCatauMYSQL_BOTH.Lebihlengkaptentangperbedaanketiganyatelahkitabahasdalamtutorialmengenaifungsimysql_fetch_array().

    Caraketigayangakankitabahasuntukmenampilkandatamysqli,adalahdenganmethodfetch_object().Berikutcontohpengunaanya:

    Carapenggunaanmethodfetch_object()hampirsamadenganmethodmethodsebelumnya,yaknidiaksesdariobjek$resulthasilmenjalankanqueryMySQL.

    DalamtutorialPHPMySQLkaliinikitatelahmembahascarapenggunaanmysqliextensionyang

    456789101112131415

    $link=newmysqli("localhost","root","qwerty","universitas");//jalankanquery$result=$link>query("SELECT*FROMmahasiswa_ilkom");//tampilkanquerywhile($row=$result>fetch_array(MYSQLI_ASSOC)){echo$row['nim']."".$row['nama']."".$row['umur']."";echo$row['tempat_lahir']."".$row['IPK'];echo"";}?>

    123456789101112131415

    www.

    dunia

    ilkom.

    com

    49

  • berbasisobject.Tutorialmysqliinidanjugatutorialsebelumnyatentangmysqliproceduralsayabuatsesingkatmungkintanpamenggunakanproseduruntukpenanganankesalahan.Misalnya,bagaimanamengecekapakahkoneksidenganMySQLsudahterhubungataubelum.

    Dalamtutorialberikutnya,akankitabahassecaramendalammengenaibeberapafungsidanmethodmysqliyangdigunakanuntukpenanganankesalahan.

    www.

    dunia

    ilkom.

    com

    50

    01 Tutorial Cara Menjalankan MySQL dan PHP menggunakan XAMPP _ Dunia Ilkom.pdf02 Jenis Koneksi PHP MySQL_ PDO, mysqli, dan mysql extension _ Dunia Ilkom.pdf03 Pengertian Extension PHP dan Cara Setting mysql extension _ Dunia Ilkom.pdf04 Cara Membuat Koneksi PHP MySQL_ fungsi mysql_connect _ Dunia Ilkom.pdf05 Cara Menjalankan query MySQL dari PHP_ fungsi mysql_query _ Dunia Ilkom.pdf06 Cara Menampilkan Tabel MySQL dari PHP_ fungsi mysql_fetch_row _ Dunia Ilkom.pdf07 Cara Menampilkan Tabel MySQL dari PHP (mysql_fetch_array) _ Dunia Ilkom.pdf08 Cara Menampilkan Pesan Error MySQL (mysql_errno, mysql_error) _ Dunia Ilkom.pdf09 Cara Menampilkan Jumlah Baris Tabel MySQL dengan PHP _ Dunia Ilkom.pdf10 Cara Menampilkan Tabel MySQL dengan objek (mysql_fetch_object) _ Dunia Ilkom.pdf11 Cara Penyajian Data MySQL dalam bentuk tabel HTML dengan CSS _ Dunia Ilkom.pdf12 Perbedaan mysql dengan mysqli extension PHP MySQL _ Dunia Ilkom.pdf13 Cara Menampilkan Data dengan mysqli PHP (procedural style) _ Dunia Ilkom.pdf14 Cara Menampilkan Data dengan mysqli PHP (Object Style) _ Dunia Ilkom.pdf