PHP függvények MySQL adatbázisok kezelésére
MySQL kezelő PHP függvények Kapcsolódás MySQL adatbázishoz: mysql_connect() 5 paramétere van, abból az első 3-at ajánlott használni hoszt neve (amelyik MySQL szerverre csatlakozunk) felhasználó neve jelszó logikai érték: ha igaz, akkor minden függvénymeghíváskor új kapcsolatot épít fel, egyébként az éppen nyitott kapcsolatot adja vissza egész értékű jelző átadása közvetlenül a szervernek
MySQL kezelő PHP függvények (folyt.) ha nem használunk paramétert, akkor localhost-ra kapcsolódik, felhasználó és jelszó nélkül a php.ini-ben is megadható az alapértelmezett kapcsolat, ha nem akarunk mindig paramétert írni sikeres kapcsolat esetén a függvény egy kapcsolatazonosítót ad vissza (ezt érdemes változóba tárolni) Példa: $kapcsolat=mysql_connect("localhost","root","pw"); if (!$kapcsolat){ print "Nem sikerült a csatlakozás!"; }
MySQL kezelő PHP függvények (folyt.) Apache használata esetén a mysql_pconnect() is használható nem szűnik meg a kapcsolat a lezárás hatására, hanem vár más programra a többszöri kapcsolatépítés ideje megspórolható előzőleg lefutott program által meghagyott azonosítót használ
MySQL kezelő PHP függvények (folyt.) Adatbázis kiválasztása: mysql_select_db() 2 paramétere van, legalább 1-et meg kell adni adatbázis neve (idézőjelek közt, vagy változóval) kapcsolatazonosító (az a kapcsolat, amin keresztül el akarjuk érni az adatbázist. Ha nem adjuk meg, az utoljára létrehozottat használja) igaz értéket ad vissza, ha létezik adott nevű adatbázis, és jogunk van azt kezelni Példa: $adatbázis="példa"; if(!mysql_select_db($adatbázis)){ print "Nem megnyitható adatbázis!"; }
MySQL kezelő PHP függvények (folyt.) Műveletek végzése az adatbázisban: mysql_query() 2 paramétere van, legalább 1-et meg kell adni parancs: idézőjelek között megadott SQL parancs, vagy ugyanez változóban tárolva kapcsolatazonosító: ha nem adjuk meg, akkor a legutóbbit használja lekérdezésnél szükség lehet az eredményre, ekkor változóba rakjuk az értékét DDL parancsok esetében önmagában is futtathatóak eredményazonosítót ad vissza, mellyel elérhetjük az eredménytáblát, vagy információt ad róla
MySQL kezelő PHP függvények (folyt.) Eredmény(tábla) sorainak száma: mysql_num_rows() 1 paramétere van: azon mysql_query() függvény eredmény azonosítója, melynek sorszámát tudni akarjuk visszatérési értéke az eredménytábla sorainak száma Példa: $eredmeny=mysql_query("SELECT * FROM tablanev"); $sor=mysql_num_rows($eredmeny);
MySQL kezelő PHP függvények (folyt.) Eredmény(tábla) 1-1 sorának kiíratása: mysql_fetch_row() 1 paramétere van: azon mysql_query() függvény eredmény azonosítója, melynek adott sorát ki szeretnénk olvasni kiolvassa az eredménytáblából a belső mutató által hivatkozott sort visszatérési értéke egy tömb, ami a sor összes mezőjét tartalmazza az eredménytábla végére érve false értéke lesz
MySQL kezelő PHP függvények (folyt.) Adott mező elérése az eredmény(táblából): mysql_fetch_array() 2 paramétere van, amiből egyet meg kell adni: azon mysql_query() függvény eredmény azonosítója, melynek adott sorát ki szeretnénk olvasni 3 érték közül kerülhet ki a 2. paraméter: MYSQL_ASSOC: visszaadott tömb csak karakterláncokkal lesz indexelve MYSQL_NUM: visszaadott tömb csak számokkal lesz indexelve MYSQL_BOTH: a tömb számmal és szöveggel is indexelve lesz, ez az alapértelmezett
MySQL kezelő PHP függvények (folyt.) Eredmény(tábla) kiíratása: mysql_fetch_row() + ciklus kombinációja a PHP egy belső mutatóval tartja nyilván, hogy melyik sort olvastuk ki utoljára ha még nem olvastunk ki egy sort sem, akkor az eredménytábla elején áll a mutató ha kiolvastunk egy eredménysort, automatikusan a következőre ugrik a mutató
MySQL kezelő PHP függvények (folyt.) Példa többsoros eredménytábla kiíratására táblázatos formában: print "<table border=1>"; while ($egysor=mysql_fetch_row($eredmeny)){ print "<tr>\n"; foreach($egysor as $mezo){ print "<td>".$mezo."</td>\n"; } print "</tr>"; print "</table>"; az $egysor nevű változóba íratjuk ki az eredménytábla aktuális sorát (amin a belső mutató áll), majd a böngészőbe is kiíratjuk
MySQL kezelő PHP függvények (folyt.) Frissítés ellenőrzése: mysql_affected_rows() ha a mysql_query() függvénnyel frissítő parancsot (UPDATE) futtatunk, még nem biztos, hogy meg is változnak egyes adatok megadja, hány sor változott meg a frissítés hatására 1 paramétere van, amit nem kötelező megadni kapcsolatazonosító (ha nem adjuk meg, az aktuális kapcsolatot használja)
MySQL kezelő PHP függvények (folyt.) Kapcsolat lezárása: mysql_close() 1 paramétere van, amit nem kötelező megadni kapcsolatazonosító (ha nem adjuk meg, az utoljára létrehozott kapcsolatot zárja le)
MySQL kezelő PHP függvények (folyt.) Beírt szöveg átalakítása: mysql_real_escape_string() 1 paramétere van, az átalakítandó szöveg (szövegként vagy változóban átadva) a jokerkarakterek (aposztróf, idézőjel) automatikus kiküszöbölésére a jokerkarakterek elé \ jelet ír űrlapoknál érdemes használni, ha nem tudjuk, milyen szöveget ír be a felhasználó Példa: $nev=mysql_real_escape_string($nev);
MySQL kezelő PHP függvények (folyt.) Átalakított szöveg visszaalakítása: stripslashes() a paraméterként megadott szövegből kitörli a \ jeleket átalakított szöveg képernyőre íratásakor előnyös
Hibakezelés ha egy művelet nem sikerült, akkor a MySQL egy hibakódot és egy hibaüzenetet állít be mysql_errno() adja vissza a hibakódot mysql_error() adja vissza a hibaüzenetet ezek használatával pontosabb képet kaphatunk a hiba természetéről előfordulhat olyan eset is, amikor már maga a függvénymeghívás is hibaüzenetet ad vissza a függvény elé @ jelet írva elnyomhatjuk a hibaüzeneteket