Csatlakozás MySQL adatbázishoz PHP-ből
Adatbáziskapcsolat létrehozása
Az adatbáziskapcsolatot a mysqli_connect( hostname, felhasznalo, jelszo ) függvénnyel hozzuk létre. Amennyiben nem sikerült csatlakozni az adatbázishoz, úgy a die( hibaüzenet ) függvénnyel tudunk saját hibaüzenetet adni erről. A mysqli_connect() függvény visszatérési értéke a kapcsolat azonosítója, amit egy változóban tárolunk.
A kapcsolatot a munka befejeztével mindig le kell zárni. Erre használjuk a mysqli_close( kapcsolat_azonosító ) függvényt, amelynek paramétere a mysqli_connect() által visszaadott kapcsolat azonosító.
PHP dokumentáció: mysqli_connect()
Karakterkódolás beállítása
Ez a lépés nem kötelező, de ajánlott, mivel máskülönben az adatok "csúnyán" jelennek meg (bizonyos karakterek, pl. ékezetek, nem tudnak megfelelően megjelenni az alapértelmezett kódolásban). Fontos, hogy mind a PHP fájl, mind az adatbázis karakterkódolása össze legyen hangolva, ahol szükséges, ott ezt állítsuk be.
A karakterkódolást az alábbi sorokkal lehet beállítani (itt UTF-8 karakterkódolást használunk).
mysqli_query($conn, 'SET NAMES UTF-8');
mysqli_query($conn, "SET character_set_results=utf8");
mysqli_set_charset($conn, 'utf8');
Adatbázis kiválasztása
Az adatbázis kiválasztása a mysqli_select_db( kapcsolat_azonosító, adatbázisnév ) függvénnyel történik. A függvény első paramétereként meg kell adni a mysqli_connect() által visszakapott kapcsolat azonosítót. Második paraméter az adatbázis neve lesz, amit használni szeretnénk. A függvény visszatérési értéke egy logikai érték, amely true (igaz), ha sikerült csatlakozni az adatbázishoz, ellenkező esetben pedig false (hamis).
PHP dokumentáció: mysqli_select_db()
SQL utasítások végrehajtása
Az SQL utasítások végrehajtása a mysqli_query( kapcsolat_azonosító, SQL_utasítás ) függvénnyel történik. Első paraméterként meg kell adnunk a kapcsolat azonosítót, majd megadjuk az SQL utasítást. A függvény visszatérési értéke az utasítástól függ.
Abban az esetben, ha az utasítás külső (például felhasználói felületről érkező) értéket tartalmaz, előkészített utasítást kell használni az SQL injekciók elkerülése érdekében. Az utasításokat a mysqli_prepare() függvénnyel lehet előkészíteni, és az SQL utasításon belül jelezni kell a külső értékek helyét. A külső értékeket a mysqli_stmt_bind_param() függvénnyel kell bekötni és végül az utasítást a mysqli_stmt_execute() függvénnyel kell lefuttatni.
PHP dokumentáció: mysqli_query(), mysqli_prepare(), mysqli_stmt_bind_param(), mysqli_stmt_execute()
Lekérdezés eredményének elérése
Ha a mysqli_query() függvényben egy SQL lekérdezést hajtottunk végre, akkor annak visszatérési értéke egy eredményhalmaz. Ezen halmaz elemeit a mysqli_fetch_assoc( eredményhalmaz ) függvénnyel érjük el. Amíg van olyan elem a halmazban, amelyet nem vizsgáltunk, úgy azt adja a vissza a függvény asszociatív tömb formájában, különben a visszatérési érték null lesz.
Megjegyezzük, hogy más módja is van az elemek elérésének. Az újabb PHP verziók a mysqli_stmt_fetch() függvény használatát támogatják.