Вы находитесь на странице: 1из 50

CaraMenjalankanPHPdanMySQLmenggunakan

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

Вам также может понравиться