A PHP nyelv nagyon fontos és erős tulajdonsága, hogy nagyon gyorsan és könnyen tud különféle adatbázisokhoz kapcsolódni és természetesen kezelni azokat. Ahogy a cím is mutatja ez a szekció a MySQL adatbázis kezelésével foglalkozik. Azért esett a választás a MySQL adatbázisra, mert ingyenes, ugyanakkor gyors, hatékony és professzionális tulajdonságokkal bír. Ha mélyebben elmerülünk a PHP nyelv adottságaiban, rádöbbenünk, hogy a nyelv által támogatott összes adatbázist hasonló függvények segítségével kezelhetjük valamint érhetjük el.
Ahhoz, hogy bármilyen műveletet végezhessünk az adatbázison, először csatlakoznunk kell hozzá. A PHP erre a mysql_connect() beépített függvényt használja. A függvény paraméterlistája három karakterláncot vár. Ezek sorra egymás után: a szervergép –ahol az adatbázisszerver fut- neve, felhasználói név és egy jelszó. Ha a függvényt paraméterlista nélkül használjuk, akkor alapértelmezésként a localhost gazdagép nevet, a php-t futtató felhasználót és egy üres karakterláncot használ a függvény. Ez természetesen a php konfigurációs fájljában a php.ini –ben átállítható. A függvény sikeres lefutás esetén egy kapcsolatazonosítóval tér vissza, ami ahhoz szükséges, hogy a későbbiekben, ha esetleg több kapcsolaton keresztül dolgozunk, meg tudjuk különböztetni azokat.
A függvény szintaktikája:
Ha sikeresen csatlakoztunk az adatbázishoz, ki kell választanunk azt az adatbázist, amin dolgozni szeretnénk. Erre a célra szolgál a mysql_select_db() függvény. A függvény két értéket vár paraméterül, egyik a kiválasztandó adatbázis neve, másik pedig egy kapcsolatazonosító. Az utóbbi paraméter opcionális, ha nem adjuk meg, a függvény az utoljára megnyitott kapcsolaton hajtódik végre. A függvény igaz értékkel tér vissza, ha az adatbázis létezik és van jogunk használni.
A db1 nevű adatbázis kiválasztásának szintaktikája:
Az előzőekben egy függvény lefutása esetén ellenőrzésre került a visszatérési érték, és hiba esetén a die() függvénnyel meg lett szakítva a program futása valamint generálásra került valamilyen aktuális hibaüzenet a felhasználónak. Ez azonban nem valódi hibakezelés. A php két beépített függvényt tartalmaz a különféle hibakódok valamint hibaüzenetek kezelésére. Minden hibához tartozik egy hibakód, amit a mysql_errno() függvénnyel valamint egy hibaüzenet, amit a mysql_error() függvénnyel érhetünk el.
A db1 adatbázis kiválasztása valódi hibakezeléssel:
Ha sikerült megnyitni valamint kiválasztani a kívánt adatbázisunkat, különféle műveleteket végezhetünk rajta. A kiválasztott adatbázis, három mezőt tartalmaz: id, nev, email. Ahhoz, hogy hozzáadjunk egy sort a táblához, össze kell állítani és lefuttatni egy SQL parancsot. Az SQL parancsok lefuttatására a php a mysql_query() függvényt használja. A függvény két adatot vár paraméterként. Egy SQL parancsot tartalmazó karakterláncot valamint egy opcionális kapcsolatazonosítót. Ez utóbbi elhagyása esetén az utoljára megnyitott adatbázis az alapértelmezett. Ha a függvény sikeresen lefutott, akkor pozitív értékkel tér vissza, ha azonban hibásan adtuk meg az SQL parancsot vagy nincs jogunk az adatbázishoz, hamis értéket kapunk. Fontos lehet, hogy egy esetlegesen sikeresen lefutó SQL utasítás nem feltétlenül okoz változást a táblában. Pl. SELECT utasítás.
A users adatbázis szerkezete:
Az insert utasítás nem ad értéket a users tábla id mezőjének. Erre azért nincs szükség, mert a tábla e mezője auto increment tulajdonságokkal bír, ami azt jelenti, hogy adatok beszúrásával automatikusan növekszik. Felmerülhet a kérdés, hogy hogyan lehet elérni e mezők értékét. Egyik lehetőségünk, hogy lekérdezzük egy SQL utasítással, a kívánt sor id értékét. Ez azonban bonyolult és időigényes feladat. A php tartalmaz egy mysql_inser_id() nevű függvényt melynek segítségével azonnal lekérdezhetjük az utoljára lefutott insert utasítás automatikusan növekvő mezőjének értékét. Szükség esetén megadhatunk neki egy kapcsolatazonosítót, azonban ha ez lemarad a szokásos módon az utoljára megnyitott kapcsolaton keresztül jár el a függvény
Az insert utasítás auto increment mezőjének lekérdezése:
Az adatok visszanyerésére szintén a mysql_query() utasítás kiadása szolgál, csak a paraméterében átadott SQL utasításban tér el a beszúrástól. Egy select utasítást kell kiadnunk. Ha sikeresen lefutott a query a selectel, a függvény egy eredményazonosítót ad vissza, melynek felhasználásával elérhetjük az eredménytáblát és információkat nyerhetünk ki belőlle.
A select utasítás által visszaadott tábla sorainak a számát a mysql_num_rows() függvény segítségével kaphatjuk meg. A függvény paraméterül vár egy eredményazonosítót, visszatérési értéke pedig az eredménytábla sorainak a száma
A users tábla sorainak a száma:
Ha végeztünk a select lekérdezéssel, és megkaptuk az eredményazonosítót, egy ciklus használatával férhetünk hozzá az eredménytábla soraihoz. A php egy belső mutató használatával tartja nyilván, hogy melyik volt az utoljára olvasott sor. Ha kiolvasunk egy újabb sort, a program automatikusan a következőre ugrik.
A mysql_fetch_row() függvény segítségével kinyerhetjük a belső mutató által mutatott sort az eredménytáblából. A függvény paramétere egy eredményazonosító, visszatérési értéke pedig egy tömb, mely tartalmazza a sor összes mezőjét. Ha az utolsó mezőre értünk a mysql_fetch_row() hamis értékkel tér vissza.
A users tábla sorainak kiírása
A táblákban lévő adatainkat az update utasítással módosíthatjuk, amit szintén a mysql_query() függvény segítségével futtathatunk le. Itt is elmondható az, hogy egy sikeres update nem feltétlenül változtatja meg a tábla tartalmát. A megváltoztatott sorok számát a mysql_affected_rows() függvénnyel érhetjük el, melynek opcionálisan egy kapcsolatazonosítót adhatunk meg. Ennek hiányában a függvény a szokásos módon viselkedik. A függvényt bármilyen SQL utasítás után kiadhatjuk, amely feltehetően valamilyen változást okozott a táblában.
Egy egyszerű táblamódosító program kódja:
A php rengeteg olyan eszközzel rendelkezik, amelyek segítségével megtudhatunk számos információt különböző adatbázisokról. Többek között megtudhatjuk, hány adatbázis hozzáférhető számunkra az adott kapcsolaton keresztül valamint milyen ezek szerkezete.
A php mysql_list_dbs() függvény használatával kilistázhatjuk az összes adatbázist amely az adott kapcsolaton keresztül hozzáférhető. A függvény egy kapcsolatazonosítót vár paraméterül, visszatérési értéke pedig egy eredményazonosító. A különböző adatbázisok neveit a mysql_tablename() függvény segítségével nyerhetjük ki, melynek paramétere az előbbi eredményazonosító valamint az adatbázis sorszáma. Visszatérési értéke pedig az adatbázis neve. Az adatbázisok indexelése 0 val kezdődik. Az összes adatbázis számát a mysql_list_dbs() függvény után lefuttatott mysql_num_rows()függvény adja meg.
Az elérhető adatbázisok kilistázása:
A mysql_list_tables() függvény segítségével egy adott adatbázis tábláinak nevét listázhatjuk ki. A függvény paramétere az adatbázis neve és opcionálisan egy kapcsolatazonosító. Ennek hiányában a függvény a szokásos módon viselkedik. Visszatérési értéke pedig egy eredményazonosító, ha az adatbázis létezik és jogunk van hozzáférni.
Adatbázis összes táblájának kilistázása:
Különböző mezőkhöz különböző sorszámokat rendelünk. A számozás 0 val kezdődik. Eme sorszám és az eredményazonosító segítségével számos információt lekérdezhetünk az adott mezőről. Többek között a nevét, típusát, legnagyobb hosszát és egyéb jellemzőit.
Mező nevének lekérdezése: