Skip navigation

Csatlakozás MySQL-hez PHP-ből

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.

Mellékletek

A példa adatbázis létrehozását nem tartalmazza az SQL fájl, ezért azt létre kell hozni.

A program forráskódja tömörítve van, mivel webes felületen nem lenne másképp letölthető (megnyitná a böngésző).