Dinamikus webhelyek létrehozása php és mysql használatával
A dinamikus helyek fő előnye a statikusakkal összehasonlítva az a képesség, hogy elválasszák az adatokat a vizuális reprezentációért felelős kódtól. Ennek a megközelítésnek köszönhetően olyan webhelyeket hozhat létre, amelyek a látogatók kéréseitől függően oldalakat alkotnak. Az ilyen webhelyek létrehozásához azonban strukturált adatok tárolására van szükség. Erre azért van szükség, hogy a program létrehozza az oldalakat, hogy képes legyen kiválasztani az adatokat a látogatótól kapott kérelem kritériumainak megfelelően.
Az adatraktár megszervezésének legegyszerűbb módja a szöveges fájlok használata. Az adatokat egy vagy több szövegfájlban tárolhatja, és elválaszthatja az egyes elemeken belül az egyes elemeket. Az adatok megszervezésének módja a tárolt és feldolgozott információk kis mennyiségével hatékony lehet. Ahhoz azonban, hogy a szövegfájlokban tárolt adatokkal működjön, szükség van az adatok hozzáadására, törlésére, módosítására és lekérésére szolgáló rutinok készítésére. Ha megváltozik az adatszerkezet, az adatkezelési alprogramokat újra kell írni.
Az ilyen nehézségek elkerülése érdekében adatbázisokat használhat. Az adatbázisban (DB) tárolt adatokkal való működtetéshez egy adatbázis-kezelő rendszer (DBMS) segítségével lehetséges. A DBMS olyan felületet biztosít, amelyen belül tetszőleges belső struktúrájú adatbázisokat hozhat létre és kezelheti azokat.
Jelenleg a legelterjedtebbek az adatbázisok adatbázisai. Az információkat bennük táblázatos formában mutatjuk be. Minden táblázat tartalmaz egy vagy több oszlopot, amelyek leírják az adatattribútumokat, és a táblázat minden sora az adatok egy példánya. Az adatbázis kezeléséhez használt nyelv az SQL strukturált lekérdezési nyelv.
A dinamikus webhely sémája, amely repository adatbázisként használható:
A böngésző egy kérést küld a webszerver számára HTML oldal létrehozására
A webszerver elindítja a PHP tolmácsot, hogy végrehajtsa a HTML-oldalt létrehozó szkriptet
A parancsfájl folyamán egy adatbázis elérhető a böngésző által küldött kérelem paramétereinek megfelelő adatok lekéréséhez
Az adatbázisból kiválasztott információk alapján a PHP szkript HTML oldalt generál
A webkiszolgáló visszaadja a létrehozott HTML oldalt a böngészőbe
A böngésző értelmezi a létrehozott oldal testében található HTML utasításokat, és megjeleníti tartalmát a képernyőn
Jelenleg a MySQL adatbázis leggyakrabban a webes alkalmazások adattárának megszervezésére szolgál.
A MySQL egy kompakt és könnyen használható adatbázis-kiszolgáló, amely Unix, Windows NT, Windows 9x platformokra érhető el. Amikor a Unix operációs rendszer alatt fut, a DBMS olyan streameket használ, amelyek lehetővé teszik a nagy teljesítményű és nagymértékben skálázható adatbázis-kiszolgáló létrehozását a MySQL alapján.
A MySQL támogatja az ANSI SQL92 és az ODBC belépő szintű szabványait. Az adatbázis-alkalmazások népszerű magas szintű nyelvek, például C, Perl, PHP és mások használatával is megvalósíthatók. A DBMS lehetővé teszi táblák működtetését összesen 4 GB teljes adatmennyiséggel.
A PHP olyan funkciókat tartalmaz, amelyek lehetővé teszik a szkript számára a MySQL-vel való interakciót. Az adatbázis használatához kapcsolatot kell létesíteni az ügyfélprogram (ebben az esetben a PHP programban írt program) és a MySQL szerver között. A funkció használatával kapcsolódhat:
mysql_connect ("host [: port] [socket]", "felhasználónév", "jelszó")
A funkció három bemeneti paramétert fogad: gazdagép, felhasználói név és jelszó. Host - azon kiszolgáló neve, amelyen a DBMS telepítve van. Abban az esetben, ha a webszerver és az adatbázis-kiszolgáló ugyanazon a gépen fut, a host paraméter értéke "localhost". A gazdanév után megadhatja a portot és az utat a csatlakozóhoz. Ez akkor szükséges, ha a beállítások az alapértelmezetttől eltérő portot és aljzatot használnak.
A felhasználónév azon felhasználó bejelentkezési azonosítója, aki hozzáférhet az adatbázishoz.
Jelszó - azon felhasználó jelszava, akinek hozzáférése van a DBMS-hez.
A függvény a sikertelenül visszaküldi a kapcsolatazonosítót, és az érték "hamis", ha nem sikerül. A kapcsolatazonosítót akkor fogjuk használni, ha minden olyan függvényt hívunk, amely lekérdezéseket küld a MySQL szerverre.
Ha ismeri az rnysql_connect azonosítóval azonos argumentumokat, akkor nem hoz létre új kapcsolatot a kiszolgálóval; a már nyitott kapcsolat azonosítója visszakerül.
Általában a felhasználó bejelentkezési és jelszavát a rendszergazda állítja be.
A telepítés után, a MySQL eléréséhez csak helyi hostként kell megadnia a gazdagépet, és üres sorokat kell használni felhasználói névként és jelszóként (felhasználók létrehozása és hozzáférési jogosultságok megadása a rendszergazda telepítése után).
A PHP program befejezése után a kapcsolat automatikusan bezáródik. Ha azonban a program futása közben be kell zárnia a kapcsolatot, akkor a funkciót használhatja
Paraméterként a funkció megkapja a kapcsolatazonosítót
A kapcsolat létrejötte után ki kell választania azt az adatbázist, amelyből a munkát elvégezni fogják. A funkció az aktív adatbázis kiválasztására szolgál.
mysql_select_db ("adatbázisnév", [kapcsolatazonosító])
A függvény paraméterei az adatbázis neve és a kapcsolat azonosítója. A kapcsolatazonosító nem kötelező paraméter. Mivel a program folyamatában általában egy kapcsolatot használnak, nem szükséges minden alkalommal kifejezetten megadni.
A funkció segítségével létrehozhat egy adatbázist
mysql_create_db ("adatbázisnév", [kapcsolatazonosító])
Az új adatbázis létrehozásának másik lehetősége egy "adatbázis létrehozása" lekérdezés küldése a mysql_query függvény használatával, amelyet később tárgyalunk.
Törölje az adatbázis tartalmát a funkció segítségével
mysql_drop_db ("adatbázisnév", [kapcsolatazonosító])
Hasonló eredmény érhető el sql-lekérdezés "csepp-adatbázis" elküldésével.
Az egyik legfontosabb feladat az SQL lekérdezés küldésének a funkciója
mysql_query ("kérés", [kapcsolatazonosító])
A függvény az eredményazonosítót adja vissza. Adatok meghatározására szolgáló parancsok, például CREATE, ALTER, DROP esetén az eredmény azonosítója a lekérdezés végrehajtásakor sikert vagy hibát jelez.
Az adatkezelési parancsok, például a DELETE, INSERT, UPDATE, az eredményazonosító segítségével megtalálhatja a feldolgozott sorok számát.
A SELECT utasítás esetében az eredményazonosító egy mutató a kiválasztott adatok eredményhalmazához.
A lekérdezésre választott rekordok számának megállapításához használhatja a függvényt
mysql_num_rows (eredményazonosító)
A függvény az eredményazonosítóval társított halmazban lévő rekordok számát adja vissza. Meg kell jegyeznünk, hogy csak a kiválasztott lekérdezés után kapott eredmény azonosítójáról beszélünk.
A minta eredményeit a funkciók segítségével érheti el
mysql_fetch_row (eredményazonosító)
mysql_fetch_array (eredményazonosító)
A fent felsorolt funkciók paraméterként találnak eredményazonosítót. A függvény végrehajtásakor egy rekordot leveszünk az eredménykészletből, és tömbként visszaküldik. A belső mutató automatikusan a következő rekordra ugrik (a lekérdezés eredménye több rekordot is tartalmazhat). Abban az esetben, ha a hívás idején az összes rekordot átkerülték, a függvény hamis.
A mysql_query végrehajtása után a mutató a megfelelő eredménykészlethez az első rekordra van állítva. A szekvenciális funkcióhívás lehetővé teszi az eredményhalmaz összes rekordjának elérését.
A mysql_fetch_array és mysql_fetch_row függvények különböznek a visszaküldött eredmény típusában:
A mysql_fetch_array olyan asszociatív tömböt ad vissza, amelynek elemnevei megfelelnek a választó lekérdezés oszlopnevének (és ennek megfelelően az eredménynek);
A mysql_fetch_row visszaad egy tömböt indexelt számokkal kezdődő 0. elem (a sorrend elemeinek a tömb megfelel a sorrend a felsorolás a lekérdezés).
Az eredményhalmazt tároló memória automatikusan felszabadul, közvetlenül a PHP szkript vége után. Ha azonban valamilyen oknál fogva szükség van a memória korai felszabadítására, akkor ezt a funkciót kell használni
mysql_free_result (eredményazonosító)
Az adatbázis használatakor különböző hibák fordulhatnak elő (például SQL lekérdezésekben szintaktikai hibák találhatók.). A MySQL szerver által küldött hibaüzenet lekéréséhez használhatja a funkciót
mysql_error (kapcsolatazonosító)
A függvény a MySQL elérésével kapcsolatos korábbi parancs (függvény, lekérdezés) következtében a kiszolgálótól kapott hibaüzenetet kapja. A MySQL szerveren előforduló hibák nem okozzák a parancsfájl leállását.
Az alkalmazás fejlesztése az adatbázis struktúrájának meghatározásával kezdődik. Ebben az esetben az adatbázis egy következő táblázatból áll: