Академический Документы
Профессиональный Документы
Культура Документы
XAMPP
PHPdijalankandariwebserverApache,danjikaandamengikutiTutorialPHPDasarUntuk
Pemuladiduniailkom,makadikomputerandatelahterinstallaplikasiXAMPP.
UntuktutorialcaramenginstallXAMPP,duniailkomtelahmembuat2tutoriallengkap,
yaknicaramenginstallXAMPP1.8.3,atauversiyanglebihbaru:caramenginstall
XAMPP5.6.3
SelainmodulApache,XAMPPjugamemilikipaketbawaanMySQLServer.Untukmenjalankan
keduanya,andatinggalmenkliktombolStartpadajendelaXAMPPControlPanelsepertigambar
un
ia
ilk
om
.c
om
dibawahini:
Jikatidakadamasalah,modulMySQLakanberwanahijauyangmenandakanMySQLServersudah
w
.d
berjalan.
CaraMenjalankanMySQLdanPHPsecaraTerpisah
JikaandatelahmengikutiTutorialMySQLDasardiduniailkom,padatutorialtersebutsaya
menginstallMySQLsecaraterpisah(bukandariaplikasiXAMPP),kitajugabisamenggunakan
aplikasiMySQLiniuntukdiaksesdariwebserverApacheyangberasaldariaplikasiXAMPP.
Namun,sepertiyangtelahkitabahaspadatutorialcaramenjalankanMySQLServer,bahwadidalam
sebuahkomputerhanyabisaberjalan1buahMySQLServer.Sehinggajikaandamenemukan
pesanerrorsepertigambardibawahini,berartiadaaplikasiMySQLServeryangsedangaktif.
om
UntukmemeriksaapakahMySQLServersedangaktifatautidak,bisadilakukanmelaluitask
.d
un
i
ai
lk
om
berartiMySQLServertelahberjalandilatarbelakang.
.c
manager.Silahkanbukataskmanager,dancariprosesdengannama:mysqld.exe.Jikaditemukan,
AndabolehmenggunakanMySQLversistandaloneini,ataumematikannyadanmenggunakan
MySQLversibawaanXAMPP.
CaraMengujiKoneksiPHPMySQLDengan
Phpmyadmin
UntukmengujiapakahaplikasiPHPdapatmengaksesdatabaseMySQL,kitabisamenggunakan
aplikasiPhpmyadminbawaanXAMPP.
AplikasiPhpmyadminadalahsebuahaplikasimanajemendatabaseMySQLyangberbasis
web.XAMPPmenambahkanaplikasiiniuntukmempermudahpengaksesandatabaseyangbiasanya
diaksesmenggunakanconsole,ataucmdWindows.Namunsayatidakakanmembahascara
penggunaanaplikasiphpmyadminpadatutorialkaliini.Kitahanyamenggunakannyauntuk
mengecekkoneksidariaplikasiPHPkeMySQL.
Untukmasukkemenuphpmyadmin,andabisamengetikalamatberikutpadaweb
browser:http://localhost/phpmyadmin/.AtaubisajugadarihalamanlocalhostXAMPP,lalucari
.d
un
ia
ilk
om
.c
om
menuphpmyadminyangberadapadapojokkirihalamanlocalhost.
JikaandamenggunakanaplikasiMySQLbawaanXAMPP,danapabilatidakadamasalahakan
tampilhalamanawalPhpmyadminsepertigambardibawahini:
om
.c
TampilnyahalamantersebutmenandakanbahwaPHPdanMySQLtelahterhubungsecara
un
ia
ilk
om
sempurna.Namunjikatampilanphpmyadminsepertigambarberikutini,makadapatdisimpulkan
w
.d
bahwaMySQLServerbelumberjalan.
Jikaandamendapatitampilantersebut,permasalahanterdapatpadaaplikasiMySQLServeryang
belumdijalankan.SilahkanjalankanaplikasiMySQLdariXAMPPControlPanel.
ApabilaandamenggunakanaplikasiMySQLyangterpisah(bukanbawaanXAMPP),maka
.d
un
ia
ilk
om
.c
om
menuphpmyadminseharusnyaakanmenjadisepertigambarberikut:
Namunjangankhawatir,pesanerrortersebutterjadikarenaphpmyadminmencobamasukke
MySQLServerdenganuserrootdantanpapassword.Pesanerror#1045Accessdeniedfor
userroot@localhost(usingpassword:NO)merupakanpesanerrorketikakitasalahmemasukkan
passworduntukuserroot.JikaandamengikutitutorialMySQLdiduniailkom,userrootakanmemiliki
passwordqwertydanbukankosong,sehinggahalinilahyangmenyebabkantampilanerrortersebut.
TampilanerrordiatassebenarnyaberartiMySQLServertelahberjalan,danbisadiaksesdariPHP.
PerkembanganCaraKoneksiPHPdanMySQL
PHPmerupakanbahasapemogramanyangselaludiupdate,danberkembangmengikutiteknologi
terbaru.Saatini,PemogramanBerorientasiObjek(ObjectOrientedProgramming)merupakan
trendpemogramanPHP,danhalinijugamempengaruhicaramengaksesdatabaseMySQLdari
PHP.
PHPmemiliki3carapengaksesanMySQL,yaknimelauiPDO(PHPDataObjects),mysqli
extensiondanmysqlextension.PDOmenggunakanpemogramanobjek,mysqli
extensiontersediadalambentukobjekdanprosedural(diaksesmelaluifungsifungsi)
sedangkanmysqlextensionsepenuhnyamenggunakanpemogramanprosedural.
1.KoneksiMySQLdenganmysqlextension
SaatpertamakalimempelajariPHPMySQLsekitartahun2008(ataujikaandapernahmempelajari
om
PHPMySQLbeberapatahunyanglalu),untukmengaksesMySQLdariPHP,kitamenggunakan
fungsifungsisepertimysql_connect(),mysql_query(),danmysql_fetch_array().Fungsifungsiini
om
.c
tergabungkedalammysqlextension.SaatituPDOdanmysqliextensionmasihjarangdigunakan.
Namunsaatini,tepatnyamulaiPHPversi5.5.0,PHPmemutuskanuntukmembuatmysql
ilk
extensionberstatusdeprecated.YangartinyapengaksesandatabaseMySQLmenggunakan
un
extensionatauPDOyangberbasisobjek.
ia
fungsimysqlextensionsudahtidakdisarankanlagi.ProgrammerPHPdiharapkanpindahkemysqli
Alasannya,MySQLversiterbarumemilikifiturfituryangsemakinlengkapdankompleks,sehingga
w
.d
PHPmemutuskanuntukmembuatfungsiextensionbaruagarprogrammerPHPbisamenggunakan
fiturfiturini.
2.KoneksiMySQLdenganmysqliextension
Sebagaipenggantimysqlextension,PHPmenyediakanmysqliextension(mysqlimerupakan
singkatandariMySQLImproved).Mysqliextensioninipadadasarnyaadalahperbaikandarimysql
extensiondandikembangkanuntukmendukungfiturfiturterbarupadaversiMySQL4.1keatas.
Hampirsemuafungsiyangadapadamysqlextension,jugatersediapadamysqli.
Selainmenggunakanmysqlmaupunmysqliextension,caraketigauntukpengaksesandatabase
MySQLdariPHPadalahmenggunakanPHPDataObjects(atauseringdisingkatdenganPDO).
3.KoneksiMySQLdenganPDO(PHPDataObjects)
PDO(PHPDataObjects),adalahextensionataupenambahanfiturdalamPHPyangdirancang
sebagaiinterfaceuniversaluntukpengaksesanberbagaijenisdatabase(tidakhanyaMySQL).
Contohnya,jikakitamenggunakanPDOdalammenuliskodepemograman,lalusuatusaatwebsite
kitabertukardatabasedariMySQLkeOracle,makakitatidakperlumengubahsemuakode
program,cukupmengubahcarapemanggilanPDOdiawalprogramsaja.
6
CaraPenulisanmysqlextension,mysqliextension,
danPDO(PHPDataObjects)
UntukmengetahuisecarasekilasperbedaancarapengaksesandatabaseMySQL
un
ia
ilk
om
.c
<?php
//mengaksesMySQLmenggunakanmysqlextension
$link=mysql_connect("localhost","root",
"qwerty");
mysql_select_db("mahasiwa");
$result=mysql_query("SELECT*FROMmahasiswa");
$row=mysql_fetch_assoc($result);
//mengaksesMySQLmenggunakanmysqliextension
$mysqli=newmysqli("localhost","root",
"qwerty","mahasiswa");
$result=$mysqli>query("SELECT*FROM
mahasiswa");
$row=$result>fetch_assoc();
//mengaksesMySQLmenggunakanPDO
$pdo=new
PDO('mysql:host=localhost;dbname=universitas',
'root','qwerty');
$statement=$pdo>query("SELECT*FROM
mahasiswa");
$row=$statement>fetch(PDO::FETCH_ASSOC);
?>
om
menggunakanmysqlextension,mysqliextension,danPDO,berikutcontohkodePHPnya:
w
.d
Dalamcontohdiatas,dianggapbahwauserMySQLadalahroot,passwordqwerty,dannama
databaseuniversitas.
Andatidakperlumemahamikodeprogramdiatas,karenakitaakanmembahasnyadalamtutorial
belajarPHPMySQLdiduniailkomini.
DalamtutorialPHPMySQLdiduniailkomini,untuktahappertama,sayaakanmenggunakan
metodemysqlextensionyangberbasisfungsiterlebihdahulu.Walaupunmetodeinitidakdisarankan
lagi,namunmetodeinilahyangpalingmudahdipelajaridandikenalluas.
Setelahselesaimembahasmysqlextension,nantinyakitaakanberalihkemysqliextension.Cara
pengaksesanMySQLdenganPDOyangberbasisobjekakanlebihmudahdipahamijikaandatelah
mempelajaripemogramanberbasisobjek.
PengertianExtensiondalamPHP
Sampaitutorialkaliini,beberapakalisayamenggunakanistilahextension.Namunapakahyang
dimaksuddenganextensionini?
ExtensiondidalamPHPadalahistilahyangmerujukkepadakumpulanfungsiprogramtambahan
yangmembuatPHPdapatmendukungberbagaifiturbaru.
PHPterdiridariaplikasiinti(PHPcore),danfungsitambahan(extension).DalamaplikasiintiPHP,
PHPtidakmenyediakanfungsiyangmenanganidatabaseMySQL.Penangananuntukfungsi
databaseinidipisahkanmenjadifungsitambahan(extension).Selaindatabase,extensiondalamPHP
menyediakanberbagaifungsilainnyauntukkeperluanyanglebihkhusus,sepertipembuatangambar,
kriptografi,penangananemail,pembuatanPDF,danlainlain.
om
CaraSettingmysqlextensiondenganphp.ini
ilk
om
.c
UntukmengaktifkanextensiondalamPHP,bisadilakukandarifilesetinganphp.ini(caramembuka
filephp.initelahkitapelajaripadatutorialCaraMengubahFileKonfigurasiPHP(php.ini)),lalu
cariextension=php_mysql.dlldanextension=php_mysqli.dll,pastikanmenghapustandatitik
w
.d
un
ia
komadiawalkeduaextensioniniuntukmengaktifkannya.
Masihpadafilephp.ini,padabagianiniandadapatmelihatberbagaiextensionyangterdapatdi
dalamPHP,bahkansebahagianbesartidakaktifsecaradefault.
Filesettinganphp.inimenginstruksikankepadaPHPuntukmengaktifkansuatuextension,namun
fileextensionitusendirijugaharusadadidalamPHP.Andabisamembuka
folderxampp\php\extuntukmelihatfilefileextensionyangdigunakanuntukmenambahfiturPHP.
8
om
.c
Untukmemeriksaapakahsetinganextension=php_mysql.dllsudahaktif,kitabisamenggunakan
om
fungsiphpinfo().Andabisamenjalankanfungsiphpinfo()didalamsebuahfilephp,ataubisajuga
denganmenklikmenuphpinfo()darihalamanlocalhostdariXAMPP.Dalam
.d
un
ia
ilk
halamanphpinfo(),carilahbagianmysqlsepertitampilanberikut:
Jikaandamenemukanbagianmysql,berartiextensionmysqltelahaktifdankitabisamulaImembuat
programuntukmengaksesdatabasemelaluiPHP.
MengenalFungsikoneksiPHPMySQL:
mysql_connect()
UntukmembuatkoneksiantaraPHPdenganMySQL,PHPmenyediakanfungsimysql_connect().
FungsiinidiibaratkansebagaicarauntukloginkedalamMySQLServer.
Fungsimysql_connect()membutuhkan3argumen,danmengembalikannilaifungsiberupavariabel
koneksikeMySQL.
Berikutadalahformatdasarpenulisanfungsimysql_connect():
$link=mysql_connect(mysql_host,'mysql_user',
'mysql_password');
$linkmerupakanvariabelyangakanmenampunghasildarifungsimysql_connect().Jika
om
berhasilterhubungdenganMySQL,$linkakanberisinilaiyangberfungsisebagailink
koneksidenganMySQL.Linkkoneksiiniakandibutuhkansepanjangkitamembuatprogram
ilk
om
.c
PHPMySQLnantinya.
mysql_hostadalahargumenpertamadarifungsimysql_connect().Nilaimysql_hostdiisi
denganalamatkomputerdimanaMySQLServerberjalan.JikaandamenjalankanMySQL
menggunakanXAMPPdikomputeryangsamadengantempatwebserverApacheberjalan,
makaalamatinibisadiisidenganlocalhostatau127.0.0.1.NamunjikaMySQLserver
un
ia
dijalankandarikomputerlain,argumeniniakanberisiIPaddressdarikomputertersebut.
mysql_useradalahnamauserMySQLdimanakitaakanlogin.
w
.d
Sepertiroot,admin,andidanlainlaintergantungkepadauserMySQLyangtelahterdaftar
diserver.CaramembuatdanmenghapususerMySQLtelahsayabahaspadaTutorialCara
MembuatdanMenghapusUserMySQL(CREATEUSER).JikaandamenggunakanMySQL
bawaanXAMPP,userrootdapatdigunakan.
mysql_passworddiisidenganpassworddariuseryangdibuatpadaargumenmysql_user.
Variabel$linkyangberisilinkkoneksiPHPMySQL(hasildarifungsimysql_connect()),termasuk
kedalamkelompoktipedatakhususPHPyangdisebutresources.VariabelResourcestidakbisa
berdirisendiridanbiasanyadigunakansebagaiargumenuntukfungsilain.Andabebasmengganti
namavariabel$linkdengannamalain,seperti$koneksi,$link_mysql,dll.
JikakoneksidenganPHPgagaldilakukan,fungsimysql_connect()akanmengembalikannilai
BooleanFALSE.HasilFALSEiniakandisimpandalamvariabel$linkdanbisakitagunakandalam
perulanganIFuntukmenampilkanerroryangterjadi
CaraMembuatKoneksiPHPdenganMySQL
UntukmengetahuicaramembuatkoneksiantaraMySQLdenganPHP,langsungsajakitamasuk
10
kedalamcontohkodeprogramcarapenggunaanfungsimysql_connect().
BerikutadalahkodePHPuntukmembuatkoneksidenganMySQL:
.c
om
<?php
//buatkoneksiMySQLuntukuser:root,
tanpapassword,alamat:localhost
$link=mysql_connect('localhost','root','');
//cekapakahkoneksidenganMySQLberhasil
if($link)
{
//koneksiberhasil
echo"KoneksidenganMySQLberhasil";
}
else
{
//koneksigagal
echo"KoneksidenganMySQLgagal";
}
//memeriksanilaidari$link
echo"<br/>";
echo'hasilvar_dumpvariabel$link:';
var_dump($link);
?>
ilk
om
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
JikakoneksidenganMySQLberhasil,makadidalamwebbrowserakantampilgambarseperti
un
ia
berikutini:
.d
Padabagianpertamakodeprogram,sayamembuatfungsimysql_connect(localhost,root,).
FungsiiniberartisayamencobalogindenganMySQLServeryangberadadi
alamatlocalhost(komputeryangsamadenganwebserverberada),
namauserrootdanpassword(stringkosong,yangberartitanpapassword).
Fungsimysql_connect()mengembalikankondisistatuskoneksikedalamvariabel$link.
Variabel$linkakanberisilinkkoneksi(bertiperesources)jikaberhasilterkoneksidenganMySQL,
danakanbernilaiTRUEjikadikonversimenjadiBoolean.
Namunvariabel$linkakanberisinilaiBooleanFALSEjikaPHPgagalloginkeMySQL.Nilai$linkini
bisadigunakanuntukpengecekanapakahkoneksiberhasilatautidak.
Jikaterjadikesalahan,misalkansajasayamengubahpasswordrootmenjadi123456,maka
tampilanwebbrowserakansepertiberikutini:
11
Sepertiyangterlihat,PHPmengeluarkanpesanerrormysql_connect():Accessdeniedforuser
root@localhost(usingpassword:YES),yangberartiloginkeMySQLgagalkarenasalahpassword
om
untukuserroot.
.c
Agarlebihinformatif,diakhirprogramsayatampilkannilaidarivariabel$linkdenganmenggunakan
ilk
om
fungsivar_dump().Andaakanmelihatbahwavariabel$linkbertipedataresourcesjikakoneksi
berhasil,danbertipedataBooleanFALSE,jikakoneksigagal.
ia
SedikitcatatantentanguserMySQLjikamenggunakanMySQLServerdariXAMPP.
un
Selainuserroot,MySQLbawaanXAMPPjugaberisibeberapauserlain.Berikutadalah
.d
daftarusertersebut:
Halyangpentingdaritabeldiatas,MySQLmembolehkanuserdengannama:ANY,yang
berartiMySQLbawaanXAMPPmembolehkanuserdengannamaapapununtukmasuk
keMySQLServer,sehinggajikaandamengubahcontohkita
menjadi:$link=mysql_connect(localhost,aku_siapa,),PHPakantetapberhasil
masukkedalamMySQLServer.
MySQLversiXAMPPmemangtidakdirancanguntukkeamanan,namunlebihkepada
kemudahandalammembuatkodeprogramPHP.
12
Mengenalfungsidie()danexit()dalamPHP
SalahsatufungsiPHPyangseringdigunakanpadasaatmelakukankoneksidenganMySQLadalah
fungsidie()danexit().
Sesuaidengannamanya,fungsiinibertujuanuntukmembunuhataukeluardariPHP.Keduafungsi
inibertujuanuntukmembuatprosesPHPberhentidiprosespadasaatitujuga(padasaatfungsiini
dipanggil).
Sebelumbunuhdiri,fungsidie()danexit()bisamenampilkanpesanterakhir.
ni
ai
lk
om
.c
o
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','123');
//cekapakahkoneksidenganMySQLberhasil
if($link)
{
//koneksiberhasil
echo"KoneksidenganMySQLberhasil";
}
else
{
//koneksigagal
die("KoneksidenganMySQLgagal");
echo"Pesaninitidakakanpernah
ditampilkan";
}
?>
.d
u
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Berikutadalahpenggunaanfungsidie()dalammembuatkoneksiantaraPHPdenganMySQL:
w
w
Fungsidie()padakodediatasakanmenyebabkanprosesPHPberhentijikaloginkedatabase
MySQLgagaldilakukan.Denganmenggunakanfungsidie(),kitabisamemastikanbahwaPHPtidak
akanmengeksekusiperintahperintahselanjutnya.
Apabilakitatidakmenggunakandie(),makaPHPakanterusmenjalankanprosesberikutnyayang
akanmenghasilkanerror(karenakoneksikedatabasememangtidakakanbisadilakukan).
MenghentikankoneksiPHPMySQLdengan
mysql_close()
KoneksiPHPdenganMySQLakandihentikansecaraotomatispadasaateksekusiprogramselesai,
yaitupadasaathalamanPHPselesaidiproses,sehinggakitatidakperlumenghentikanyasecara
manual.
NamunjikaandainginmenghentikankoneksidenganMySQLpadasaatprogramPHPsedang
berjalan,PHPmenyediakanfungsimysql_close().Fungsiinimembutuhkan1buahargumenyang
diisidenganvariabellinkkoneksihasilpemanggilanfungsimysql_connect().Variabelkoneksiini
13
bersifatopsional,danjikadiabaikanmakaPHPakanmenggunakankoneksimysqlterakhir.
Berikutadalahcontohpenggunaanfungsimysql_close():
1
2
3
4
5
6
7
8
9
10
11
12
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','123');
//...KodeProgramPHPMySQL
//...KodeProgramPHPMySQL
//...KodeProgramPHPMySQL
//menghentikankoneksidenganMySQL
mysql_close($link);
//...KodeProgramPHP
//...KodeProgramPHP
?>
.c
om
Dalamtutorialkaliini,kitatelahberhasilmembuatkoneksiantaraPHPdenganMySQLServer.
NamununtukberkomunikasidengandatabasedalamMySQL,harusmenggunakanquery.Dalam
tutorialberikutnyakitaakanmembahascaramenjalankanqueryMySQLdariPHPdenganfungsi
.d
un
ia
ilk
om
mysql_query.
14
MengenalFungsiQueryPHPMySQL:mysql_query
UntukmenjalankanqueryMySQL,PHPmenyediakanfungsimysql_query().Fungsiinidijalankan
setelahkoneksiberhasildilakukandenganfungsimysql_connect().
Fungsimysql_query()merupakanfungsiyangakanseringkitagunakan,karenadenganfungsiinilah
PHPakanmelakukanpercakapandenganMySQL.HampirseluruhperintahqueryMySQLyangkita
bahaspadatutorialbelajarMySQLDasar,dapatdijalankandenganfungsimysql_query().
Fungsimysql_query()membutuhkan2argumen,dimanaargumenpertamadiisidenganquery
MySQL,danargumenkeduadiisidenganlinkkoneksihasilfungsimysql_connect().Argumenkedua
inibersifatopsional.
om
Berikutadalahformatdasarpenulisanfungsimysql_query()dalamPHP:
$result=mysql_query('query_mysql',[$link_koneksi_mysql]);
ilk
om
.c
$resultadalahvariabelyangakanmenampunghasildarifungsimysql_query().Jika
fungsimysql_query()berhasildijalankan,variabel$resultakanberisihasilquery.Namun
hasilqueryiniharusdiproseslebihlanjutagardatanyadapatditampilkan.
Variabel$resultbertiperesources(samadenganhasildarifungsimysql_conncect()).
un
ia
Variabel$resultakanbernilaiBooleanFALSEjikaquerygagaldijalankan.Namadarivariabel
initidakharusditulissebagai$result,andabebasjikainginmenggantinyadengannamalain.
query_mysqladalahargumenpertamafungsimysql_query().Padabagianinilahkitamenulis
w
.d
queryMySQL.QuerytersebutselanjutnyaakandikirimkepadaMySQLServeruntukdiproses.
ArgumeniniharuspertipeStringdanmengikutiaturanStringdidalamPHP.Contohqueryini,
misalnyaSELECT*FROMmahasiswa,atauCREATEDATABASEuniversitas.
$link_koneksi_mysqladalahargumenkeduadarifungsimysql_query().Argumeninidiisi
denganvariabelhasilpemanggilanfungsimysql_connect().Argumeninibersifatopsional,dan
jikadiabaikan,PHPakanmenggunakanvariabelmysql_connect()yangsedangterkoneksi
saatini.
JikaandabelummemahamipengertiandancarapenulisanquerySELECTMySQL,
duniailkomtelahmenyediakantutorialdasartentangquerydalamTutorialMySQL:Cara
PenulisanQuerySELECTMySQL.
CaraMenjalankanqueryMySQLdariPHP
Untukmemahamicarapenggunaanfungsimysql_query(),langsungsajakitamasukkedalam
contohprogram.Dalamcontohprogramberikut,sayaakanmembuatqueryuntukmenampilkan
15
seluruhdatabaseyangadadidalamMYSQL.
Berikutadalahcontohprogrampenulisanfungsimysql_querydalamPHP:
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//jalankanquery
$result=mysql_query('SHOWDATABASES',$link);
un
ia
ilk
om
.c
//tampilkanhasilquery
while($row=mysql_fetch_row($result))
{
echo$row[0];
echo"<br/>";
}
?>
om
//jikakoneksigagal,langsungkeluardariPHP
if(!$link)
{
die("KoneksidenganMySQLgagal");
}
w
.d
Jikaandamenjalankanperintahdiatas,didalamwebbrowserakantampilsemuanamadatabase
yangadadalamMySQL.
Padabariske3dariprogramdiatas,sayamembuatkoneksidenganMySQLmenggunakan
fungsimysql_connect().Fungsiinimenggunakanuserrootdantanpapassword.Hasilkoneksi
fungsisayasimpankedalamvariabel$link.
Selanjutnyapadabariske6sayamemeriksanilaidarikoneksimysql_connect()dengancara
membuatlogikaIFuntukvariabel$link.JikaMySQLgagaldiakses,makafungsidie()akan
memerintahkanPHPuntukmenghentikanprogram.
Namunjikakoneksiberhasil,padabariske12sayamembuatfungsimysql_query()untuk
menjalankanquerySHOWDATABASES.Queryiniadalahperintahuntukmenampilkanseluruh
namadatabaseyangadapadaMySQL.
Kodeprogrampadabariske15digunakanuntukmenampilkanhasilquery.
Fungsimysql_fetch_row()belumsayabahas,danakankitapelajaripadatutorialberikutnya.
Apabilaqueryyangdigunakanlebihpanjangdankompleks,andabisamenyimpannyadidalam
sebuahvariabelterlebihdahulu,barukemudiandijalankandenganmysql_query(),seperticontoh
16
berikutini:
$query="SELECT*FROMmahasiswaWHEREIPK>5";
$result=mysql_query($query,$link);
Denganmemindahkanquerykedalamvariabel,akanmembuatprogramkitamenjadilebihrapi.
Argumenkeduadarifungsimysql_query()jugabolehtidakditulis,danPHPakanmenggunakanlink
koneksiMySQLterakhiryangtersedia,seperticontohberikut:
$query="SELECT*FROMmahasiswaWHEREIPK>5";
$result=mysql_query($query);
Fungsimysql_connect()danmysql_query()adalahfungsipalingdasardalamkoneksiPHPdengan
om
MySQL.Untukmenampilkanhasildariquerytersebut,PHPmenyediakanberbagaicarayangbisa
digunakanuntukberbagaisituasi.Carapengaksesaniniakankitapelajaripadaartikelartikel
w
.d
un
ia
ilk
om
.c
selanjutnya.
17
MenampilkanTabelMySQLdenganfungsi
mysql_fetch_row
UntukmenampilkantabelMySQLdidalamPHP,hasildarifungsimysql_query()harusdiproses
lebihlanjutagarbisaditampilkandidalamwebbrowser.PHPmenyediakanbanyakcarauntuk
menampilkanhasilqueryMySQL.Salahsatunyaakankitabahasdalamtutorialkaliini:dengan
fungsimysql_fetch_row().
PerintahSELECTadalahqueryMySQLyangpalingseringgunakan.Queryiniberfungsiuntuk
menampilkandatadaridatabase.DatayangditampilkanMySQLbiasanyadiberikandalambentuk
tabelyangterdiridaribarisdankolom.
Fungsimysql_fetch_row()digunakanuntukmenampilkantabelsecarabarisperbaris.
Fungsimysql_fecth_row()akanmengembalikannilai1barisdarisebuahtabelpadasetiap
om
pemanggilan.Sehinggauntukdapatmenampilkanseluruhisitabel,fungsimysql_fecth_row()harus
dipanggilsecaraberulang.
om
.c
Berikutadalahformatdasarpenulisanfungsimysql_fetch_row()dalamPHP
$row=mysql_fetch_row($result)
ilk
$rowadalahvariabelyangakanmenampunghasilfungsimysql_fetch_row().Hasildari
ia
fungsimysql_fetch_row()berupatipedataarraydengankeymerujukkepadakepadaurutan
un
kolom,danvaluenya(nilaidariarray)adalahisidarikolomtersebut.
$resultadalahvariabelinputanqueryuntukfungsimysql_fecth_row().Variabeliniberasaldari
.d
fungsimysql_query().
Carapengambilandatadarivariabel$row,pentinguntukdipahami.
Variabel$rowhasilfungsimysql_fetch_row()bertipearray.Jikasebuahbarisdidalamtabel
MySQLterdiridari3kolom,makavaribel$rowakanberisinilaisebagai
berikut:$row[0]=nilai_kolom_1,$row[1]=nilai_kolom_2,dan$row[2]=nilai_kolom_3.Indexarray
dimulaidari0,dankarenaitukolom1beradapadaindex0,bukanindex1.
Yangperlumenjadiperhatian,fungsimysql_fetch_row()hanyamembaca1barispadasekali
pemanggilan.Jikatabelkitaterdiridari5baris,makafungsimysql_fecth_row()harusdiulang
sebanyak5kali.
CaraMenampilkanTabelMySQLdariPHP
Agarlebihmudahmemahamicarakerjafungsimysql_fetch_row(),kitaakanlangsungpraktek
dengankodeprogram.
Karenafungsimysql_fetch_row()digunakanuntukmenampilkandata,kitaharusmembuatdatanya
18
terlebihdahulu,yaituberupadatabaseMySQLbesertatabelnya.
SebagaidatacontohdansaranalatihanmenggunakanqueryMySQL,sayaakanmembuat
databaseuniversitas,dantabelmahasiswa_ilkom.Databaseuniversitasdan
tabelmahasiswa_ilkominijugaakansayagunakanpadatutorialPHPMySQLselanjutnya.
.d
un
ia
ilk
om
.c
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//jikakoneksigagal,langsungkeluardari
PHP
if(!$link)
{
die("KoneksidenganMySQLgagal");
}
//buatdatabaseuniversitas
$result=mysql_query('CREATEDATABASE
universitas');
if(!$result)
{
die("Databasemahasiswagagaldibuat");
}
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
if(!$result)
{
die("Databasemahasiswagagal
digunakan");
}
//buattabelmahasiswa_ilkom
$query="CREATETABLEmahasiswa_ilkom(nim
CHAR(9)NOTNULLPRIMARYKEY,
namaCHAR(50),umurINT,tempat_lahir
CHAR(50),IPKDECIMAL(3,2))";
$result=mysql_query($query);
if(!$result)
{
die("Tabelmahasiswa_ilkomgagal
dibuat");
}
//tambahkandatakedalamtabel
mahasiswa_ilkom
$query="INSERTINTOmahasiswa_ilkomVALUES
('089045001','AndiSuryo',
23,'Jakarta',2.7)";
mysql_query($query);
$query="INSERTINTOmahasiswa_ilkomVALUES
('109245021','SantiSyanum',
21,'Malang',3.2)";
mysql_query($query);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
om
Berikutadalahkodeyangdiperlukan:
19
52
53
54
55
56
$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"DatabaseuniversitasdanTabel
mahasiswa_ilkomberhasildibuat";
?>
om
KodePHPdiatassedikitpanjangjikadibandingkancontohcontohkitasebelumnya,namunintinya
perintahdiatasadalahuntukmembuatdatabaseuniversitas,dantabelmahasiswa_ilkom.Setelah
.c
tabelterbentuk,kemudiansayamenambahkanbeberapadatakedalamtabeltersebut.
om
Daricontohdiatas,andajugadapatmelihatcarapembuatandatabase,pembuatantabel,dancara
ilk
memasukkannilaikedalamdatabase.Semuanyadijalankandenganfungsimysql_query().
JikaandasudahpahamtentangqueryMySQL,perintahquerydiatastentunyatidakterlalusulituntuk
ia
dipahami.Namunjikaragutentanginstruksiqueryyangsayagunakan,andabisamempelajarinya
un
ditutorialMySQLduniailkom.
.d
FungsifungsiPHPyangsayagunakanjugatelahkitapelajaripadatutorialsebelumnya.Tambahan
barumungkinadapadapenggunaanlogikaIFuntukmenanganifungsiyanggagal.Saya
dijalankan.
menggunakaninstruksi(!$result)untukmasukpadafungsidie()jikafungsitersebutgagal
Sebagaicontoh,jikaandamenjalankankodediatassebanyak2kali,makaakantampil
pesanDatabasemahasiswagagaldibuat.Haliniterjadikarenaterdapatduplikasidatabasedi
dalamMySQL,sehinggakodePHPakanberhentipadabariske15karenafungsidie().
CaraMenampilkanBarisTabelDenganFungsi
mysql_fetch_row
Setelahtabelcontohselesaidibuat,saatnyakitamencobamenampilkandatadari
tabelmahasiswa_ilkomdenganfungsimysql_fetch_row().
Carapalingdasaruntukmenampilkandatadarimysqladalahsepertikodeprogramberikutini:
1
2
<?php
//buatkoneksidenganMySQL
20
$link=mysql_connect('localhost','root','');
//jikakoneksigagal,langsungkeluardari
PHP
if(!$link)
{
die("KoneksidenganMySQLgagal");
}
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
if(!$result)
{
die("Databasemahasiswagagal
digunakan");
}
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
$row=mysql_fetch_row($result);
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
?>
.d
un
ia
ilk
om
.c
om
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Kodeprogramdaribaris1sampaibaris16merupakanpersiapanuntukmengkoneksikanMySQLdan
memilihdatabaseuniversitas.
Perhatikanpadabariske12,dimanasayamenjalankanqueryUSEuniversitas.Queryiniditujukan
untukmemberitahuMySQLbahwakitaakanmenggunakandatabasemahasiswa.Alternatif
penulisanmysql_query(USEuniversitas)adalahdenganmenggunakan
fungsimysql_select_db(universitas).Andabebasinginmenggunakansalahsatunya.
Padabariske20sayamenjalankanquerySELECTuntukmenampilkanseluruhisi
tabelmahasiswa_ilkom.Caramenjalankannyaadalahdenganfungsimysql_query()dengan
perintahquery:SELECT*FROMmahasiswa_ilkom.Hasilfungsiditampungkedalam
variabel$result.
21
Variabel$resultselanjutnyadiprosesdenganfungsimysql_fetch_row($result),dandisimpandalam
variabel$row.
Sepertiyangtelahkitapelajari,bahwafungsimysql_fetch_row()akanmenyimpanhasilquery
sebagaiarraydengankeyadalahurutankolommulaidarikeyke0untukkolomke1tabel,$row[1]
untukkolomke2,danbegituseterusnya.Karenatabelmahasiswa_ilkomhanyamemiliki5kolom,
maka$row[4]adalahkolomterakhir.
CaraMenampilkanSeluruhTabelDenganFungsi
mysql_fetch_row
Sesuainamanya,fungsimysql_fetch_row()hanyaakanmenampilkanbarisperbaris,jadi
bagaimanacaranyauntukmenampilkanseluruhtabelmahasiswa_ilkom?Caranyaadalahdengan
Sehinggacontohprogramkitamenjadisebagaiberikut:
.d
un
ia
ilk
om
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
$row=mysql_fetch_row($result);
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
$row=mysql_fetch_row($result);
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
$row=mysql_fetch_row($result);
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
$row=mysql_fetch_row($result);
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
$row=mysql_fetch_row($result);
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.c
om
mengulangfungsimysql_fetch_row()sebanyakjumlahbarisyanginginditampilkan.
22
Padacontohdiatas,sayamenghapusbarisfungsidie()sematamataagarcontohprogramkitatidak
terlalupanjang.
m
.c
om
Kodeprogramdiatasberjalansebagaimanadenganseharusnya,karenapadasetiappemanggilan
fungsimysql_fetch_row(),PHPakanmenggeserpenunjukbarisMySQLkebarisberikutnyadi
dalamtabel.Sehinggauntukpemanggilanmysql_fetch_row()ke2posisipointerMySQLakan
lk
o
beradadibariske2daritabel,danbegituseterusnyahinggapemanggilanmysql_fetch_row()ke5.
ia
i
MenampilkanTabelMySQLDenganPerulanganFor
un
Namunjikaandaperhatikan,fungsimysql_fetch_row()yangditulissecaraberulangulangpada
contohsebelumnyamerupakanpekerjaanyangcocokuntukfungsiperulangan.Sehinggadengan
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
for($i=1;$i<=5;$i++)
{
$row=mysql_fetch_row($result);
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.d
menggunakanperulanganfor,kodekitaakanmenjadilebihmudahditulis.
Fungsidiatasakanmenampilkanseluruhbarisyangadadidalam
tabelmahasiswa_ilkomdenganmelakukanperulanganfungsimysql_fetch_row()sebanyak5kali.
23
Namunmasihada1hallagiyangbisakitaperbaikidariprogramdiatas.
MenampilkanTabelMySQLDenganPerulanganWhile
Perulanganformengharuskankitauntukmenulislangsungjumlahperulanganyangharus
dilakukan.Padasaatpenulisanprogram,kitatelahmengetahuibahwatabelmahasiswa_ilkomberisi
5baris,Namunbagaimanajikaternyatadatadidalamtabelsaatinitidaklagi5,tetapisudahlebihdari
itu?
Untukperulangandimanabanyaknyaperulangantidakdiketahuipadasaatpenulisanprogram,kita
bisaberalihkeperulanganwhile(TutorialCaraPenulisanPerulanganWhiledalamPHP).
Untukmembuathalinimenjadilebihmudah,fungsimysql_fetch_row()akanmengembalikan
nilaiFALSEjikapointertelahberadadibaristerakhirtabelMySQL.Nilaikembalianinimenjadi
m
.c
om
variabelyangtepatuntukkondisiberhentipadaperulanganwhile.
Berikutadalahcontohprogrampenggunaanmysql_fetch_row()denganperulanganwhile:
.d
un
ia
i
lk
o
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
while($row=mysql_fetch_row($result))
{
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Konsepperulanganwhilesepertidiatasakanseringandalihatuntukmenampilkandatadari
databaseMySQL.
Selainmenggunakanfungsimysql_fetch_row(),PHPmasihmemilikifungsilainnyauntuk
menampilkandatatabeldariMySQL,salahsatunyaadalahfungsimysql_fecth_array().
Fungsimysql_fecth_array()lebihfleksibelkarenakitatidakhanyabisamenggunakanangka,namun
juganamakolomsebagaikeyarray.Pembahasantentangfungsimysql_fecth_array()akankita
pelajaridalamtutorialselanjutnya:CaraMenampilkanTabelMySQLdariPHP(mysql_fetch_array().
24
MenampilkanTabelMySQLdenganfungsi
mysql_fetch_array
Fungsimysql_fetch_array()padadasarnyahampirsamadenganfungsimysql_fetch_row(),namun
fungsimysql_fetch_array()memberikanalternatifcaramenampilkandataMySQLdenganlebih
mudah.
Jikadalamfungsimysql_fetch_row()hasilfungsinyaberupaarray
dengankeyatauindexnyaberupaangka,seperti:$row[1],$row[2]dan$row[3],makadi
dalammysql_fetch_array(),kitabisamenggunakannamakolomdaritabelMySQL
sebagaikeyatauindexarraysepertiberikutini:$row[nim],$row[nama]dan$row[umur].Cara
penulisansepertiiniakanmemudahkanpembuatanprogram.
Selainmenggunakannamakolompadaindexarray,fungsimysql_fetch_array()jugabisa
om
menggunakanindexpenomorankolomsepertimysql_fetch_row(),ataubahkankeduanya
sekaligus.Untukmengaturfiturini,fungsimysql_fetch_array()membutuhkanparametertambahan.
ilk
om
.c
Berikutadalahformatdasarpenulisanfungsimysql_fetch_array()dalamPHP:
$row=mysql_fetch_array($result,[tipe_hasil])
$rowadalahvariabelyangakanmenampunghasilfungsimysql_fetch_array().Hasildari
un
ia
fungsimysql_fetch_array()berupatipedataarraydengankeyyangbergantungkepada
konstantatipe_hasil.
fungsimysql_query().
w
.d
$resultadalahvariabelhasilmenjalankanqueryMySQLyangberasardari
tipe_hasilmerupakankonstantaopsionalyangdigunakanuntukmengaturindexarraydari
hasilfungsimysql_fetch_array().Konstantayangbisadigunakanadalahsalahsatudariketiga
nilaiberikut:MYSQL_NUM,MYSQL_ASSOCatauMYSQL_BOTH.Jikaargumeninitidak
ditulis,nilaidefaultnyaadalahMYSQL_BOTH.
Perbedaanmysql_fetch_array:MYSQL_NUM,
MYSQL_ASSOCdanMYSQL_BOTH
Caramengaksesarraydarifungsimysql_fetch_array()bergantungkepadaargumentipe_hasil.
Argumentipe_hasilhanyabisaberisisatudari3konstanta:MYSQL_NUM,
MYSQL_ASSOCatauMYSQL_BOTH.
Jikaargumenkeduadarifungsimysql_fetch_array()diisiMYSQL_NUM,makaindexarrayakan
menjadiangka(samasepertihasilmysql_fetch_row()),danbisaditampilkanseperti:$row[1],
$row[2]dan$row[3].
25
JikaargumenkeduadiisiMYSQL_ASSOC,indexarrayakanmenjadinamakolom,danbisa
ditampilkanseperti:$row[nim],$row[nama]dan$row[umur].
Opsiketiga,jikaargumendiisiMYSQL_BOTHmakaindexarraymendukung2pemanggilan,yakni
berupaangkadannamakolom.
Samasepertifungsimysql_fetch_row(),mysql_fetch_row()hanyamembaca1barispadasekali
pemanggilan.Jikatabelkitaterdiridari5baris,makafungsimysql_fecth_array()harusdiulang
sebanyak5kali(ataumenggunakanmetodaperulanganwhilesepertiyangkitalakukanpada
tutorialmysql_fetch_row().
CaraPenggunaanFungsimysql_fecth_array()
Agarlebihmudahdipahami,langsungsajakitamasukkedalamcontohkodeprogram.Masih
.c
om
menggunakancontohdatabaseuniversitasyangdibuatpadatutorialmysql_fetch_row(),kaliinisaya
akanmenggunakanfungsimysql_fetch_array()untukmenampilkanhasilnya.
.d
un
ia
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
while($row=mysql_fetch_array($result,
MYSQL_NUM))
{
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ilk
om
Berikutadalahcontohpenggunaanfungsimysql_fetch_array()dalamPHP:
26
Dalamcontohdiatas,baris16merupakankodeprogramuntukmembuatkoneksidenganMySQL.
mengembalikanseluruhisitabelmahasiswa_ilkom.
.c
om
Padabariske9,sayamembuatquerySELECT*FROMmahasiswa_ilkomyangakan
Jikadiperhatikan,kodeprogramdiatassamapersisdengancontohterakhirpada
ilk
om
tutorialmysql_fetch_row(),hanyapadabariske10sayamenggantinyadengan
fungsimysql_fetch_array().
KonstantaMYSQL_NUMpadaargumenke2fungsimysql_fetch_array(),menginstruksikankepada
ia
PHPbahwanilaikembalianuntukvariabel$rowadalaharraydenganindexangka,sehingga
un
hasilnyasamapersisdenganmysql_fetch_row()yangdiaksesdengan$row[0]untukkolom
.d
pertamatabel,$row[1]untukkolomkeduatabel,danseterusnya.
JikamenggunakankonstantaMYSQL_NUMakanmembuatfungsimysql_fetch_array()sama
denganmysql_fetch_row(),bagaimanadenganMYSQL_ASSOC?Dalamcontohberikut,sayaakan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mengubahkonstantafungsimysql_fetch_array()denganMYSQL_ASSOC:
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
while($row=mysql_fetch_array($result,MYSQL_ASSOC))
{
echo$row['nim']."".$row['nama']."
".$row['umur']."";
echo$row['tempat_lahir']."".$row['IPK'];
echo"<br/>";
}
?>
27
Padacontohkaliini,padabariske10,fungsimysql_fetch_array()sayapanggildengan
konstantaMYSQL_ASSOCsebagaiargumenkedua.Dengancaraini,hasilkembalianquery,berupa
arraydenganindexnamakolomdaritabelMySQL.
KarenamenggunakankonstantaMYSQL_ASSOC,carapengaksesannilai$rowharus
menggunakanindexnamakolomtabel.JikadidalamMySQLnamakolomadalahnim,makauntuk
menampilkandatakolomtersebut,kitamenggunakan$row[nim].JikadidalamMySQLnama
kolomadalahtempat_lahir,untukmenampilkandatakolomtersebut,adalahdengan
$row[tempat_lahir],danseterusnya.
Dengancaraini,kitaakanmudahuntukmerancangtampilantabelMySQL,terutamajikaurutan
kolomtidakditampilkansecaraberurutan.
Untukpilihankonstantaterakhir:MYSQL_BOTH,MySQLakanmengembalikannilai$rowyangbisa
diaksesbaikdenganindexangkamaupundenganindexnamakolom.Berikutadalahcontohkode
.d
un
ia
ilk
om
.c
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
while($row=mysql_fetch_array($result,MYSQL_BOTH))
{
echo$row[0]."".$row['nama']."
".$row['umur']."";
echo$row[3]."".$row['IPK'];
echo"<br/>";
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
om
programnya:
Sepertiyangterlihat,sayamembuatperintah$row[0]dan$row[nama]dalampemanggilanyang
sama,danPHPdapatmenampilkanhasilsesuaidenganyangdiharapkan.
Perludiketahui,padapanduanresmiPHP,fungsimysql_fetch_array()ditegaskantidak
akanlebihlambatdaripadafungsimysql_fetch_row(),walaupun
fungsimysql_fetch_array()menawarkanfiturtambahan.Pengaksesanarrayhasil
MySQLdenganmenggunakanangkamaupunnamaakansamacepatnya.
Padadasarnya,pengaksesanMySQLmelaluiPHP,hanyamembutuhkan3fungsiutama,
yaknimysql_connect(),mysql_query(),danmysql_fecth_array().Sampaidisini,kitatelah
mempelajariketigafungsipentingtersebut.
28
Dalamtutorialselanjutnya,kitaakanmempelajaricaramenampilkanpesanerrordariMySQLketika
w
.d
un
ia
ilk
om
.c
om
queryyangdijalankantidaksesuai.
29
CaraMenampilkanPesanErrorMySQLdalamPHP
Agarlebihinformatif,ketikaquerytidakberjalandengansemestinya,PHPmenyediakan2buah
fungsiuntukmenampilkanpesanerrordariMySQL,yaitufungsimysql_errno()danmysql_error().
Keduafungsiinimembutuhkan1buahargumenyangbersifatopsional,yaknivariabelhasil
pemanggilanfungsimysql_connect().Namunjikaargumentidakditulis,PHPakanmenggunakan
koneksiMySQLterakhiryangtersedia.
Fungsimysql_errno()akanmenampilkannomorataukodeerrorMySQL,sedangkan
fungsimysql_error()akanmenampilkanpenjelasanerrortersebut.
om
ContohPenggunaan
Fungsimysql_errnodanmysql_error
Sebagaicontohpenggunaankeduafungsitersebut,silahkanjalankankodeprogramberikutini:
w
.d
un
ia
ilk
om
.c
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//jikakoneksigagal,langsungkeluardari
PHP
if(!$link)
{
die("KoneksidenganMySQLgagal");
}
//jalankanquery
$query="DROPDATABASEtidak_ada";
$result=mysql_query($query,$link);
echo"Queryyangdijalankan:$query";
echo"<br/>";
echo"Kodeerror:".mysql_errno($link);
echo"<br/>";
echo"Pesanerror:".mysql_error();
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
30
Padakodediatas,sayamencobamenjalankanperintahuntukmenghapusdatabasetidak_adayang
memangtidaktersediadidalamMySQL.Jikakitamenjalankanquerytersebuttanpabantuan
fungsimysql_errno()danmysql_error(),makakitatidaktahuapapesanerrordariMySQL.
Perhatikanjugabahwapadapemanggilanfungsimysql_error()padabaristerakhir,sayatidak
w
.d
un
ia
ilk
om
.c
om
memberikanargumen,karenasifatnyayangopsional.
31
CaraPenggunaanFungsimysql_num_rows
Fungsimysql_num_rows()digunakanuntukmengetahuiberapabanyakjumlahbarishasil
pemanggilanfungsimysql_query().Fungsiinimembutuhkan1buahargumen,yakni
variabelresourceshasildarifungsimysql_query().
Berikutadalahcontohpenggunaannya:
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//jikakoneksigagal,langsungkeluardari
PHP
if(!$link)
{
die("KoneksidenganMySQLgagal");
}
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
if(!$result)
{
die("Databasemahasiswagagal
digunakan");
}
//jalankanquery
$result=mysql_query("SELECT*FROM
mahasiswa_ilkom");
echo"Totalmahasiswaberjumlah
".mysql_num_rows($result)."orang.";
?>
.d
un
ia
ilk
om
.c
om
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Totalmahasiswaberjumlah5orang
Jikakodediatasdijalankan,hasilyangdidapatadalahsebagaiberikut:
CaraPenggunaanFungsimysql_affected_rows
Fungsimysql_affected_rows()digunakanuntukmengetahuijumlahbaristabelyangdikenai
prosesolehqueryMySQL.Hasilinibiasanyadiperlukanjikakitainginmengetahuidenganlebihdetail
tentangprosesyangberlangsung.
Sebagaicontoh,kitainginmelakukanoperasiDELETEkepadasebuahtabel.Halinibisadilakukan
denganfungsimysql_query.Namunkitatidakbisamengetahuiberapajumlahbarisyangtelah
dihapus.
JikamenggunakanMySQL,informasiiniditampilkanlangsungsetelahquery:
32
.c
om
UntukmengambilinformasiinidariPHP,kitamenggunakanfungsimysql_affected_rows().Berikut
adalahcontohpenggunaannya:
.d
un
ia
ilk
om
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//jikakoneksigagal,langsungkeluardari
PHP
if(!$link)
{
die("KoneksidenganMySQLgagal");
}
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
if(!$result)
{
die("Databasemahasiswagagal
digunakan");
}
//jalankanquery
$result=mysql_query("DELETEFROM
mahasiswa_ilkomWHEREumur='23'");
echo"Datayangdihapussebanyak:
".mysql_affected_rows()."orang.";
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dan,hasilyangditampilkanadalah:
Datayangdihapussebanyak:2orang.
Baikfungsimysql_num_rowsdanmysql_affected_rowsseringdigunakandidalamsituasidimana
kitamembutuhkaninformasiterkaitqueryMySQLyangdijalankan.Keduafungsiinimelengkapi
fungsifungsilainyangtelahkitapelajarididalamtutorialPHPMySQLini.
33
PadatutorialPHPMySQLselanjutnya,kitaakanmembahascaramenampilkantabelMySQLdengan
w
.d
un
ia
ilk
om
.c
om
menggunakanobjek(fungsimysql_fetch_object).
34
PenggunaanObjekuntukMenampilkandataMySQL
Fungsimysql_fetch_rowdanmysql_fetch_arrayyangtelahkitapelajarisebelumnya,
menggunakanarrayuntukmenampunghasilqueryMySQL.Sebagaicontoh,untukmenampilkan
hasiltabelmahasiswa_ilkomdenganfungsimysql_fetch_array,kitamengaksesnyadengancara
berikut:
$row['nim'],$row['nama'],$row['umur'],
$row['tempat_lahir'],dan$row['IPK']
Dengankatalain,namakolomberfungsisebagaikeydariarray$row.
Selainmenggunakanarray,PHPjugamenyediakanfungsimysql_fetch_objectjikakitaingin
mengakseshasilquerymenggunakannotasiobjek.Namakolomakanberfungsi
sebagaipropertydariobjek$row.Menggunakancontohtabelmahasiswa_ilkom,makacara
$row>nim,$row>nama,$row>umur,$row
>tempat_lahir,dan$row>IPK
.c
o
mengaksesnyaadalahsebagaiberikut:
om
Karaktertandapanah(>)digunakanuntukmengaksespropertydarisebuahobjekdidalamPHP.
ilk
MengenaipemrogramanberbasisobjekdidalamPHP,duniailkomtelahmembuattutorial
lengkapjikaandainginmempelajariOOPPHP.SilahkanmengunjungiTutorialOOP
un
ia
PHP:PemrogramanBerbasisObjekdenganPHP.
.d
CaraPenggunaanFungsimysql_fetch_object
w
w
Selainperbedaancaraaksesdiatas,carapenggunaanfungsimysql_fetch_objectuntuk
menampilkantabelMySQL,hampirsamadenganfungsimysql_fetch_rowdanmysql_fetch_array.
Berikutadalahmodifikasikodeprogramyangsebelumnyakitagunakanpadatutorial
mysql_fetch_arrayuntukmenampilkanseluruhisitabelmahasiswa_ilkom:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//jikakoneksigagal,langsungkeluardari
PHP
if(!$link)
{
die("KoneksidenganMySQLgagal");
}
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
if(!$result)
{
die("Databasemahasiswagagal
35
17
18
19
20
21
22
23
24
25
26
digunakan");
}
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
while($row=mysql_fetch_object($result))
{
echo$row>nim."".$row>nama."".$row
>umur."";
echo$row>tempat_lahir."".$row>IPK;
echo"<br/>";
}
?>
Jikaandatelahmempelajaritutorialmysql_fetch_arraydiduniailkomsebelumnya,makakodediatas
sangatmirip.Sayahanyamengubahfungsimysql_fetch_arraydenganmysql_fetch_object,lalu
.c
om
melakukanpenyesuaianuntukpengaksesanpropertyobjek$row.
Pengaksesandenganobjekiniakanlebihlengkapapabilakitamenggunakan
ilk
om
extensionmysqliatauPDO.Keduametodeiniakankitapelajaridalamtutorialterpisahnantinya.
Menutupcarapenggunaanmysqlextension(sebelumkitamasukkemysqliextension),dalam
tutorialberikutnyasayaakanmencobamenkombinasikanHTML,CSS,PHPdanMySQLuntuk
ia
menampilkandatadengantampilanyangmenarik.SelanjutnyadalamTutorialPHPMySQL:Cara
.d
un
PenyajianDataMySQLdalambentuktabelHTMLdenganCSS.
36
MenyajikanDataMySQLdenganTabelHTMLdanCSS
Umumnya,hasilqueryMySQLyangkitaambildaridatabaseakanditampilkankedalambentuktabel.
DenganmengkombinasikanPHP,MySQL,HTMLdanCSS,kitabisamenampilkandatatabel
MySQLdengandesainyangberagam.DalamtutorialPHPMySQLini,sayaakanmencoba
un
ia
ilk
om
.c
om
menampilkantabelmahasiswa_ilkomdengantampilanakhirsepertigambarberikut:
.d
TampilandiatasdidapatdenganmengkombinasikanPHP,MySQL,HTMLdanCSS.Danberikut
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//jikakoneksigagal,langsungkeluardari
PHP
if(!$link)
{
die("KoneksidenganMySQLgagal");
}
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
if(!$result)
{
die("Databasemahasiswagagal
digunakan");
}
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
adalahkodeprogramyangdigunakan:
37
w
.d
un
ia
ilk
o
.c
o
<!DOCTYPEhtml>
<head>
<metacharset="UTF8">
<title>BelajarPHPMySQL</title>
<style>
h3{
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;}
</style>
</head>
<body>
<h3>PenyajianDataMySQLdalambentuk
tabelHTMLdenganCSS</h3>
<table>
<tr>
<th>NIM</th>
<th>Nama</th>
<th>Umur</th>
<th>TempatLahir</th>
<th>IPK</th>
</tr>
<?php
while($row=mysql_fetch_array($result))
{
echo"<tr>";
echo"<td>".$row['nim']."</td>";
echo"<td>".$row['nama']."</td>";
echo"<td>".$row['umur']."</td>";
echo"<td>".$row['tempat_lahir']."
</td>";
echo"<td>".$row['IPK']."</td>";
echo"</tr>";
}
?>
</table>
</body>
</html>
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Kodediatasterasapanjang,terutamakarenadalamtutorialPHPMySQLsebeluminisayatidak
38
menggunakanHTMLdanCSS.
KodePHPyangsayagunakandarikodeprogramdiatassamapersisdenganyangadadi
dalamtutorialPHPMySQLtentangmysql_fetch_array.Akantetapikaliinihasilnyadiletakkandi
dalamtabelHTML.
KoneksiPHPdenganMySQLdanjugafungsimysql_query()sayaletakkansebelumkodeHTML.
HaliniumumdigunakanuntukmemisahkanPHPdenganHTML.
KodeCSSuntuktabelsayaletakkandibagian<head>.KodeCSSdigunakanuntuk
mengubahbordertabel,warnabackgroud,padding,danukuranfont.Yangcukupmenarikadalah
selectortr:nthchild(even).SelectorCSS3inidigunakanuntukmendapatkanefekzebradidalam
tabel,ataudikenaldenganstrippedtable.Fiturinidigunakanagarsetiapbaristabelbisadibaca
denganmudahkarenamemilikiwarnayangberbeda.
om
Didalamperulanganmysql_fetch_array(),hasildaritiapiterasiditempatkandidalamtag<td>,
sehinggalangsungmenyatudenganseltabel.
yangsesuai.
ilk
om
.c
AndabisaberkreasidenganmengubahubahkodeHTMLatauCSSdiatasuntukmendapatkanhasil
DuniailkomtelahmembuattutoriallengkapmengenaiTabelHTML,danCSSDasar.Jika
andakurangmemahamitentangkodeHTMLdanCSSyangdigunakanpadatutorialkali
w
.d
un
ia
ini,janganraguuntukmempelajarinya.
DalamtutorialPHPMySQLberikutnya,kitaakanmulaimembahastentangmysqliextensiondidalam
pemrogramanPHP.
39
PerbedaanAntaramysqlextensionDenganmysqli
extension
SepanjangtutorialPHPMySQLPart4sampai11diduniailkomini,kitamenggunakanextension
mysqldariPHPuntukmengaksesMySQL.Fungsifungsiyangkitapelajaritersebut(seperti
fungsimysql_connect,mysql_query,danmysql_fetch_array)memangsudahtidakdisarankan
lagi,tetapisayatetapmembahasnyasebagaidasarbagikitauntukmasukkeextensionyanglebih
modern:mysqlidanPDO.
TerhitungdariPHPversi5.5,extensionmysqltidaklagidisarankanpenggunaannyadan
berstatusdeprecated,yangberartimungkinakandihapuspadaPHPversiberikutnya.Programmer
disarankanuntukberalihmenggunakanmysqliatauPDO.Dalamtutorialkaliinikitaakan
membahasmysqliterlebihdahulu.
om
MysqlimerupakankependekandariMySQLImprovedExtension.Sepertiyangterlihatdari
namanya,extensioninimerupakanversiperbaikandanpenambahandari
om
fiturfiturterbarudariMySQLServerversi4.1keatas.
.c
extensionmysqlsebelumnyayangumumdigunakan.Extensionmysqlidibuatuntukmendukung
Secaragarisbesar,tidakadaperbedaanmencolokantaramysqlextensiondenganmysqliextension.
ilk
Namanamafungsididalammysqlisebagianbesarmiripdenganapayangtelahkitapelajari
ia
(extensionmysql).
un
Sebagaicontoh,untukmembuatkoneksidenganMySQLServer,didalammysqlkitamenggunakan
fungsimysql_connect(),sedangkandidalammysqli,kitamenggunakanmysqli_connect().Begitu
.d
jugadenganfungsilainsepertimysql_query()menjadimysqli_query().
Selainmenambahhurufididalamnamafungsi,argumenargumenyangdibutuhkanjugahampir
mirip.Perbedaannya,jikadidalamextensionmysqlumumnyakitameletakkanargumenresourcesdi
akhirfungsi,makadidalammysqli,argumeniniditeletakkandiawal.
Sebagaicontoh,didalammysqlkitamenulis:
1
mysql_query("SELECT*FROM
mahasiswa_ilkom",$link)
Sedangkandidalammysqlipenulisannyamenjadi:
mysqli_query($link,"SELECT*FROM
mahasiswa_ilkom")
Namunperbedaanpalingmendasardidalammysqliadalah:mysqlimendukungcara
penulisanobjectorientedprogramming.
Mengenal2jenisMysqliStyle:ProceduraldanObject
40
Oriented
Agarprosesmigrasidarimysqlkemysqlitidakterlalumenyusahkan,PHPmemberikan2alternatif
carapenulisanmysqli.
Carayangpertamaadalahmenggunakanproceduralstyle.Carainimiripdenganextension
mysql,dimanakitamenggunakanfungsifungsiuntukmengaksesdatabaseMySQL.
Carakeduaadalahdenganobjectorientedstyle.Dengancaraini,kitamenggunakanaturan
penulisanpemrogramanobjekuntukberkomunikasidenganMySQL.
Keduajenisstylepemrogramanmysqliinimenggunakannamafungsidanmethodyangkuranglebih
sama.Sebagaicontoh,didalamproceduralstylemysqli,terdapatfungsimysqli_query(),sedangkan
dalamOOPstylemysqli,kitamenggunakanmethod$mysqli>query().Kitaakanmembahaslebih
om
dalamtentangcarapenggunaan2styleininantinya.
DidalamtutorialPHPMySQLkaliinikitatelahmembahasperbedaanextensionmysqldengan
ilk
om
.c
extensionmysqliyanglebihbaru.SesuaidenganinstruksidarimanualMySQL,sebaiknyakitatidak
menggunakanlagiextensionmysql.
Dalamtutorialselanjutnya,kitaakanmulaimembahascarapenggunaanmysqliextension.Berikutnya
dalamtutorialPHPMySQLduniailkom:CaraMenampilkanDatadenganmysqliPHPmenggunakan
w
.d
un
ia
proceduralstyle.
41
CaraMembuatKoneksiMySQLDenganFungsi
mysqli_connect()
UntukmembuatkoneksiantaraPHPdenganMySQLServer,kitamenggunakan
fungsimysqli_connect().Fungsimysqli_connect()inimembutuhkanargumenyangsamadengan
fungsimysql_connect(),yakni:alamathost,namauser,danpassworduser.
Sebagaicontoh,untukmasukkedalamMySQLdilocalhostmenggunakanuserrootdandengan
passwordqwerty,kitamenggunakankodeprogramsebagaiberikut:
1
2
3
<?php
$link=mysqli_connect("localhost",
"root","qwerty");
?>
Sebagaifiturtambahan,fungsimysqli_connect()memilikiargumenke4yangbersifatopsional.Kita
bisamenambahkannamadatabaseyangingindigunakan.Misalkankitainginsewaktuproses
sebagaiberikut:
om
<?php
$link=mysqli_connect("localhost",
"root","qwerty","universitas");
?>
ia
ilk
1
2
3
.c
o
koneksidenganMySQL,langsungmemilihdatabaseuniversitas,makacontohpenulisannyaadalah
un
CaraMenutupKoneksiDenganFungsimysqli_close()
.d
WalaupunPHPakanmenutupkoneksidenganMySQLpadasaathalamanselesaidiproses,kitabisa
menutupnyasecaramanualmenggunakanfungsimysqli_close().Fungsiinimembutuhkan1
w
w
argumen,yaknivariabelresourceshasilpemanggilanfungsimysqli_connect().
Berikutcontohpenggunaanfungsimysqli_close():
1
2
3
4
5
6
7
8
9
10
11
<?php
//buatkoneksidenganMySQL
$link=mysqli_connect("localhost",
"root","qwerty","universitas");
//....prosesPHP
//....prosesPHP
//....prosesPHP
//tutupkoneksi
mysqli_close($link);
?>
CaraMenjalankanQueryMySQLDenganFungsi
mysqli_query()
42
CaramenjalankanqueryMySQLdenganmysqliextensionjugamiripdenganmysqlextension.Di
dalammysqli,kitamenggunakanfungsimysqli_query().Namunberbedadengan
fungsimysql_query()yangmeletakkanvariabelresourceshasilmysql_connect()sebagaiargumen
keduadanbersifatopsional,didalamfungsimysqli_query(),variabelinidiletakkansebagaiargumen
pertamadanharusditulis.
Sebagaicontoh,denganmenggunakanmysql_extension,kitabiasamenuliskodePHPsebagai
berikut:
om
<?php
//buatkoneksidenganMySQL
$link=mysql_connect('localhost','root','');
//gunakandatabaseuniversitas
$result=mysql_query('USEuniversitas');
//tampilkantabelmahasiswa_ilkom
$result=mysql_query('SELECT*FROM
mahasiswa_ilkom');
?>
.c
1
2
3
4
5
6
7
8
9
10
un
ia
ilk
<?php
//buatkoneksidenganMySQL,gunakan
database:universitas
$link=mysqli_connect("localhost",
"root","","universitas");
//jalankanquery
$result=mysqli_query($link,"SELECT*
FROMmahasiswa_ilkom");
?>
.d
1
2
3
4
5
6
7
om
Sedangkandenganmenggunakanmysqliextension,berikutadalahperubahancarapenggunaannya:
Perhatikanbahwakitamenggunakanformat:mysqli_query($link,query_MySQL)untuk
menjalankanqueryMySQL.
CaraMenampilkanDataMySQLDenganmysqli
UntukmenampilkanhasilqueryMySQL,mysqliextensionmemilikibanyakfungsi.Kaliinikitaakan
membahas3fungsiyangpalingseringdigunakan:mysqli_fetch_row(),
mysqli_fetch_array(),danmysqli_fetch_object().
Ketigafungsiinihampirsamacarapenggunaannyadenganversimysqlextensionyangtelahkita
bahas,yakni:mysql_fetch_row(),mysql_fetch_array(),danmysql_fetch_object().Jikaanda
perhatikan,perbedaannamanyahanyadenganmenambahhurufi.
Langsungsajakitamasukkecontohprogram,untukmemahamicarapenggunaanketigafungsiini.
Didalamcontohcontohberikutsayamenggunakantabelmahasiswa_ilkomdidalam
databaseuniversitas.Tabelinikitabuatsewaktumembahastentangfungsimysql_fetch_row.
43
Pertama,marikitalihatcaramenampilkandataMySQLdenganfungsimysqli_fetch_row():
<?php
//buatkoneksidenganMySQL,gunakan
database:universitas
$link=mysqli_connect("localhost",
"root","","universitas");
//jalankanquery
$result=mysqli_query($link,"SELECT*
FROMmahasiswa_ilkom");
//tampilkanquery
while($row=mysqli_fetch_row($result))
{
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
}
?>
om
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Fungsimysqli_fetch_row()samapersiscarapenggunaanyadenganfungsimysql_fetch_row(),
.c
olehkarenaitusayatidakakanmembahasnyalagi.Tapijikaandaragu,bisamengunjungitutorialnya
diCaraMenampilkanTabelMySQLdariPHPdenganfungsimysql_fetch_row.
.d
un
i
ai
<?php
//buatkoneksidenganMySQL,gunakandatabase:
universitas
$link=mysqli_connect("localhost","root",""
"universitas");
//jalankanquery
$result=mysqli_query($link,"SELECT*FROM
mahasiswa_ilkom");
//tampilkanquery
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC))
{
echo$row['nim']."".$row['nama']."
".$row['umur']."";
echo$row['tempat_lahir']."".$row['IPK'];
echo"<br/>";
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lk
o
Berikutnya,kitabahascaramenampilkandataMySQLdenganfungsimysqli_fetch_array():
Sedikitperbedaanantarafungsimysqli_fetch_array()denganfungsi
kembarannyamysql_fetch_array(),kaliinistringpenentumetodaarrayberadapadaargumen
kedua.Argumenpertamaadalahvariabelresourceshasilpemanggilanfungsimysqli_query().
StringMYSQLI_ASSOCdigunakanagarkeyarraydapatdiaksesdengannama.Stringlainyangbisa
kitagunakanadalahMYSQL_NUMdanMYSQL_BOTH.Perbedaanketiganyatelahkitabahas
lengkapdalamTutorialPHPMySQL:CaraMenampilkanTabelMySQLdariPHPdengan
mysql_fetch_array.
44
Caraketigayangakankitabahasadalahdenganmenggunakanfungsimysqli_fetch_object().
Fungsiinisamadenganfungsimysql_fetch_object(),dimanakitamengakseshasilquerysebagai
objek.BerikutadalahcontohkodePHPnya:
<?php
//buatkoneksidenganMySQL,gunakan
database:universitas
$link=mysqli_connect("localhost",
"root","","universitas");
//jalankanquery
$result=mysqli_query($link,"SELECT*
FROMmahasiswa_ilkom");
//tampilkanquery
while($row=mysqli_fetch_object($result))
{
echo$row>nim."".$row>nama."".$row
>umur."";
echo$row>tempat_lahir."".$row>IPK;
echo"<br/>";
}
?>
.c
om
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ilk
om
Jikaandabutuhpenjelasanmengenaicarapenggunaanmysqli_fetch_object(),silahkan
kunjungiTutorialPHPMySQL:CaraMenampilkanTabeldenganobjek(mysql_fetch_object).
un
menampilkandatadaridatabaseMySQL.
ia
DalamtutorialPHPMySQLkaliinikitatelahmembahastentangcarapenggunaanmysqliuntuk
.d
Sepertiyangpernahkitabahas,mysqlimemiliki2carapenulisan(2jenisstyle).Selaindengancara
proceduralsepertidalamtutorialini,didalamtutorialselanjutnyakitaakanmembahascara
penggunaanmysqlidenganobjectorientedstyle.
45
CaraPenulisanObjectStylemysqli
Sebagaicarakoneksiyanglebihbarudaripadamysqlextension,mysqlimemiliki2jenisstyle,
yakniproceduralstyledanobjectorientedstyle.Kecendrunganpemrogramansaatinilebih
banyakmenggunakanobjek.UntukhalinilahPHPjugamenyediakanmysqlidenganrasaobjek.
Pemrogramanberbasisobjeklebihbanyakdisukaikarenacenderungrapidanmudahdikembangkan,
terutamajikakitamengerjakanproyekbesaryangbutuhribuanbarisprogram.KonsepOOP
sepertiinheritance,encapsulationdanpolymorfismmembuatprogrammenjadilebihtertata.
JikaandabaruberkenalandenganPHPataukonseppemrogramansecaraumum,
pemrogramanberbasisobjekmungkinakanterasamembingungkan.OOP
membutuhkanalurpenulisanprogramyangberbedadibandingkanmetodeprocedural
om
yangkitapelajarihinggasaatini.
SayasangatmenyarankanandauntukmulaiberalihmenggunakanOOP.Karena
denganOOPlahtingkatpemahamandanpengalamankitanaiklevel.Jikaanda
.c
bermaksudseriusmempelajaritentangPHP,duniailkomtelahmembuattutoriallengkap
ilk
om
mengenaikonsepOOP,didalamTutorialPemrogramanBerbasisObjekPHP.
ia
Langsungsajakitalihatbagaimanacarapenggunaanobjekdidalammysqli.
un
DidalamtutorialinisayaberasumsiandatelahmemahamisedikittentangOOPPHP.
Terutamacarapemanggilanconstructor(carapembuatanobjek)dancara
.d
pemanggilanmethodobjek(menggunakantandapanah>).
CaraMembuatKoneksidenganMySQL(mysqli
constructor)
UntukmembuatkoneksiMySQLdenganPHPmenggunakanmysqliobjectstyle,caranyaadalah
denganmenggunakanmysqliconstructor.Constructormysqliadalahsejenisfungsiyangdigunakan
untukmembuatobjectbarudariclassmysqli.
Argumendidalamconstruktormysqliinisamapersisdenganargumenfungsimysqli_connect(),
yaknilokasikomputer,namauser,danpassworduser.
Berikutadalahcaramembuatkoneksimysqlidilocalhostuntukuserrootdenganpassword
qwerty:
1
2
3
<?php
$link=newmysqli("localhost","root",
"qwerty");
?>
46
Padakodediatas,sayamembuatobjek$linkdariclassmysqli.DidalamOOP,
keywordnewdigunakanuntukmembuatobjekbaru.Denganobjek$linkhasilmysqli
constructorinilahprosesqueryMySQLnantinyakitajalankan.
Samasepertifungsimysqli_connect(),constructormysqlijugamemilikiargumentambahan,yakni
namadatabaseyangingindigunakan.Jikakitainginlangsungmengaksesdatabaseuniversitas,
makakodeprogramnyamenjadi:
1
2
3
<?php
$link=newmysqli("localhost","root",
"qwerty","universitas");
?>
om
CaraMenutupKoneksiMySQLDenganMethod
mysqli::close()
WalaupunPHPakanlansungmenutupkoneksikeMySQLjikahalamantelahselesaidiproses,
.c
namunkitajugabisamenutupnyasecaramanualmenggunakanmethodclose()dari
.d
un
ia
ilk
<?php
//buatkoneksidenganMySQL
$link=newmysqli("localhost","root",
"qwerty","universitas");
//....ProsesPHP
//....ProsesPHP
//....ProsesPHP
//tutupkoneksi
$link>close();
?>
1
2
3
4
5
6
7
8
9
10
11
om
objekmysqli,ataubiasaditulissebagaimysqli::close().Berikutcontohpenggunaannya:
CaraMenjalankanQueryMySQLDenganMethod
mysqli::query()
Jikadidalampenulisanproceduralkitamenggunakanfungsimysqli_query()untukmenjalankan
queryMySQL,makadidalamobjekstyle,kitamengaksesnyamenggunakan
methodmysqli::query().
Agarlebihmudahdipahami,langsungsajakitamasukkedalamcontohkodeprogram:
1
2
3
4
5
6
7
<?php
//buatkoneksidenganMySQL,gunakan
database:universitas
$link=newmysqli("localhost","root",
"qwerty","universitas);
//jalankanquery
47
$result=$link>query("SELECT*FROM
mahasiswa_ilkom");
?>
Perhatikanbahwadidalamprosespemanggilanmethodquery(),kitamembutuhkan1argumen,yakni
queryMySQLyangakandijalankan.
CaraMenampilkanDataMySQLDenganmysqliobject
style
UntukmenampilkanhasilqueryMySQL,mysqliobjectmemilikibanyakmethod.Kaliinikitaakan
membahas3carayangpalingseringdigunakan,yaknimethodfetch_row(),
fetch_array()danfetch_object().Carapenggunaanketigamethodinihampirsamadenganpadanan
fungsinyadiproceduralstyle,yaknidenganfungsimysqli_fetch_row(),
mysqli_fetch_array(),danmysqli_fetch_object().
.c
o
Agarlebihjelas,langsungsajakitamasukkedalamcontohkodeprogramuntukmenampilkan
om
seluruhisidatadaritabelmahasiswa_ilkom.
Pembahasanpertama,yaknicaramenampilkandatamysqlidenganmethodfetch_row().Berikut
.d
un
ia
<?php
//buatkoneksidenganMySQL,gunakan
database:universitas
$link=newmysqli("localhost","root",
"qwerty","universitas");
//jalankanquery
$result=$link>query("SELECT*FROM
mahasiswa_ilkom");
//tampilkanquery
while($row=$result>fetch_row())
{
echo"$row[0]$row[1]$row[2]$row[3]
$row[4]";
echo"<br/>";
}
?>
w
w
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ilk
adalahcontohkodeprogramnya:
Dalamcontohdiatas,sayamengunakanmethodfetch_row()dariobjek$resultyangmerupakan
objekhasilpemanggilanmethodquery().Methodfetch_row()initidakmemerlukanargumenapapun,
sehinggakitamemanggilnyadengancara$result>fetch_row().
Carakeduauntukmenampilkandatamysqliadalahdenganmethodfetch_array().Berikutcontoh
kodeprogramnya:
1
2
3
<?php
//buatkoneksidenganMySQL,gunakan
database:universitas
48
4
5
6
7
8
9
10
11
12
13
14
15
$link=newmysqli("localhost","root",
"qwerty","universitas");
//jalankanquery
$result=$link>query("SELECT*FROM
mahasiswa_ilkom");
//tampilkanquery
while($row=$result
>fetch_array(MYSQLI_ASSOC))
{
echo$row['nim']."".$row['nama']."
".$row['umur']."";
echo$row['tempat_lahir']."
".$row['IPK'];
echo"<br/>";
}
?>
Samasepertimethodfetch_row(),methodfetch_array()jugadiaksesdariobjek$resultyang
om
merupakanhasilpemanggilanquery.
.c
Methodfetch_array()membutuhkan1argumen,berupastringyangberisibagaimanacaraarray
hasilmethodakandiakases.Stringinibisadipilihdarisalahsatunilai:MYSQL_NUM,
MYSQL_ASSOCatauMYSQL_BOTH.Lebihlengkaptentangperbedaanketiganyatelahkitabahas
lk
o
dalamtutorialmengenaifungsimysql_fetch_array().
ai
Caraketigayangakankitabahasuntukmenampilkandatamysqli,adalahdengan
<?php
//buatkoneksidenganMySQL,gunakan
database:universitas
$link=newmysqli("localhost","root",
"qwerty","universitas");
//jalankanquery
$result=$link>query("SELECT*FROM
mahasiswa_ilkom");
//tampilkanquery
while($row=$result>fetch_object())
{
echo$row>nim."".$row>nama."".$row
>umur."";
echo$row>tempat_lahir."".$row>IPK;
echo"<br/>";
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.d
un
i
methodfetch_object().Berikutcontohpengunaanya:
Carapenggunaanmethodfetch_object()hampirsamadenganmethodmethodsebelumnya,yaknidi
aksesdariobjek$resulthasilmenjalankanqueryMySQL.
DalamtutorialPHPMySQLkaliinikitatelahmembahascarapenggunaanmysqliextensionyang
49
berbasisobject.Tutorialmysqliinidanjugatutorialsebelumnyatentangmysqliproceduralsayabuat
sesingkatmungkintanpamenggunakanproseduruntukpenanganankesalahan.Misalnya,
bagaimanamengecekapakahkoneksidenganMySQLsudahterhubungataubelum.
Dalamtutorialberikutnya,akankitabahassecaramendalammengenaibeberapafungsidanmethod
w
.d
un
ia
ilk
om
.c
om
mysqliyangdigunakanuntukpenanganankesalahan.
50