hu en sv en hu it hu en hu de hu ja hu hu hu hu hu hu hu hu de hu hu hu hu hu hu hu hu en hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu es es hu en de en sv en en fr en en hu hu en hu es de en en hu hu hu hu hu hu cs hu hu hu hu hu hu hu hu hu hu hu hu cs hu hu hu hu hu hu hu hu hu hu hu hu cs hu hu hu hu hu hu hu hu hu es es es tr en hu hu hu hu hu hu hu hu hu fr hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu en hu it hu en hu de hu ja hu hu hu hu hu es es es tr en hu
MySQL lekérdezés készítése PHP-ban (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel) - WEBiskola
Weboldalszerkesztő (HTML, CSS, JS kódszerkesztő) HTML-színkód generátor (Hexadecimális, RGB, HSL színkód kereső)
Ebben a leckében bemutatjuk, hogy hogyan készíthetsz MySQL lekérdezéseket PHP-ban objektumorientáltan, procedurálisan vagy PDO-val.
Egy korábbi leckében már foglalkoztunk MySQL adatbázis-műveletekkel PHP nyelv alatt, de ebben a cikkben sokkal részletesebben kifejtjük egyes adatbázis-műveletek megvalósítását. Az előző PHP leckében csak az objektumorientált megvalósítást mutattuk be, de ebben a cikkben mutatunk példát a procedurális és PDO-s megvalósításra is.
Ebben a cikkben már nem ismertetjük az adatbázis és a MySQL fogalmát, ha ezekről is szeretnél többet tudni, akkor olvasd el a korábbi PHP-MySQL leckénket.
Az előző leckében töröltünk egy már létező rekordot a táblánkból, ebben pedig bemutatjuk, hogy hogyan tudtok lekérdezéseket írni.
A MySQLi a PHP5-tel megjelenő modul, amely felületet biztosít az adatbázisszerverekkel végzett műveletek végrehajtásának. Lehetővé teszi a procedurális és az objektumorientált megvalósítást is. Ezt a modul a PHP telepítésekor általában automatikusan települ a számítógépekre. (Ha valakinek mégsem történt volna meg, akkor itt letöltheti és telepítheti.)
A PDO a PHP Data Objects rövidítése. A PDO tulajdonképpen egy objektum az adatbázis kapcsolatok és lekérdezések egyszerűbb kezelésére. A PDO több különböző adatbázis rendszerrel képes működni, így az igazi előnye, akkor jön elő, amikor szeretnéd lecserélni az adatbázisszervered egy másikra. A PDO használatával csak apróbb módosításokat kell tennünk a kódban.
Mi az az objektumorientált programozás?
Az objektumorientált programozás (angolul object-oriented programming, röviden OOP) egy az objektumokra alapozott programozási elmélet vagy szemlélet. Az objektumok egységbe foglalják az adatokat és a velük kapcsolatos műveleteket. Az adatokat tulajdonságoknak, míg a műveleteket függvényeknek, illetve metódusoknak szoktuk nevezni. Az objektum az objektumorientált programozás egyik alapeleme.
Mi az a procedurális programozás?
A procedurális programozás (vagy eljárás orientált programozás) egy programozási alapelv, melynek alapja a modularitás és a hatókör. A procedurális programozás során azt az alapelvet követjük, hogy a konkrét programozási feladatot minél több kisebb egységre, avagy eljárásra tudjuk bontani. Ezek az eljárások a kódban jól körülhatárolt egységek, melyeket függvénynek vagy metódusnak nevezünk. Egy eljárásnak van elnevezése és olykor visszatérési értéke is. Az eljárás valamilyen műveletet hajt végre. A program futása során a főprogramban ezeket az elkészített eljárásokat hívjuk meg.
Lekérdezés MySQL adatbázisban (select)
Miután a táblánkban már vannak adatok, lehetőségünk van arra, hogy különböző lekérdezéseket írjunk. Ezekkel a lekérdezésekkel kilistázhatjuk egy adott feltételnek megfelelő sorokat (rekordokat). Például kilistázhatjuk az összes programnyelvet, amely 2000 után jelent meg.
SELECT mező(k).neve(i) FROM táblanév FROM feltétel Code language: SQL (Structured Query Language) (sql)
A mezők neveihez azokat a neveket kell írnunk, amelyek a táblában léteznek és szeretnénk, hogy eredményként megjelennének. A “WHERE” feltétel elhagyható, csak abban az esetben kell használnunk, ha nem szeretnénk a tábla összes elemét kilistázni.
Például, ha írunk egy ilyen lekérdezést:
SELECT id, nev, megjelenesi_ev FROM programnyelvek Code language: SQL (Structured Query Language) (sql)
Akkor ez lesz az eredménye:
Ez kilistázta a tábla összes rekordját, azaz sorát, mert nem tettünk semmilyen feltételt.
Az “id, nev, megjelenesi_ev” helyett írhattam volna csillagot (“*”) is, hiszen ezzel kilistázzuk az összes oszlopot. Ha csak a nevüket szerettem volna kilistázni, akkor így kellett volna írnom:
SELECT nev FROM programnyelvek Code language: SQL (Structured Query Language) (sql)
Melynek ez lesz az eredménye:
Lekérdezés készítése MySQL táblában objektumorientált módon (MySQL select)
Legelőször nézzük meg a rendkívül népszerű objektumorientált megvalósítást.
KAPCSOLAT->query(SQL.KÓD); Code language: CSS (css)
Objektumorientált programozás esetében bármilyen SQL utasítás (új rekord felvitele, törlése, módosítása) végrehajtása során a használni kívánt kapcsolatunkra (alábbi példánkban “$conn”) kell meghívni a “query()” függvényt, melynek az SQL utasítás az egyetlen paramétere. Az SQL utasításokat érdemes egy változóba kiszervezni és azt átadni paraméterként.
Példa lekérdezés írására MySQL-ben PHP nyelv alatt objektumorientáltan:
query($sql); // eredmény kiíratása if ($result->num_rows > 0) { // ha a lekérdezésnek van eredménye, akkor belépünk az if-be while($row = $result->fetch_assoc()) { // amíg van rekord, addig kiírom őket echo "id: " . $row["id"]. ", név: " . $row["nev"]. " "; } } else { echo "A lekérdezésnek nincs eredménye."; // nincs eredmény } // kapcsolat lezárása $conn->close(); ?> Code language: PHP (php)
id: 1, név: PHP
id: 2, név: JavaScript
id: 3, név: Java
A fenti kódban megírtuk a lekérdezésünket, amely szerint az “id” és a “nev” mezőket szeretnénk lekérdezni. A lekérdezés eredményét eltároljuk a “$result” változóban. Majd következik az eredmény kiíratása. Először megvizsgáljuk, hogy a sorok száma nagyobb-e, mint nulla, mivel ha nem nagyobb, akkor nincs mit kiíratnunk, így fölösleges belépnünk a kiíratáshoz. Ha nagyobb, akkor a lekérdezésünk eredménnyel tért vissza, készítünk egy while ciklust, amely addig megy, amíg a “$row” nem tér vissza null értékkel. Akkor fog null értékkel visszatérni, amikor már nincs több sor. A while ciklus magjában egyszerűen kiíratjuk az id-t és a nevet.
Lekérdezés készítése procedurálisan (MySQL select)
Az objektumorientált verzió után nézzük meg a lekérdezés készítésére vonatkozó procedurális utasításokat.
mysqli_query(KAPCSOLAT, SQL.UTASÍTÁS); Code language: CSS (css)
Emlékezzünk rá, hogy bármilyen SQL utasítást (új rekord felvitele, törlése, módosítása) szeretnénk végrehajtani procedurálisan, mindig a “mysqli_query” függvénnyel tehetjük meg, melynek az első paramétere a kapcsolat, míg a második a végrehajtandó SQL kód.
Lekérdezés írása procedurális megvalósítással PHP nyelvben:
0) { // megvizsgáljuk, hogy a lekérdezésnek van-e eredménye // amíg van sor, addig kiíratjuk while($row = mysqli_fetch_assoc($result)) { // addig megy amíg van még sor, rekord echo "id: " . $row["id"]. ", név: " . $row["nev"]. " "; } } else { echo "A lekérdezésnek nincs eredménye."; // nincs eredmény } mysqli_close($conn); // kapcsolat lezárása ?> Code language: PHP (php)
id: 1, név: PHP
id: 2, név: JavaScript
id: 3, név: Java
A fenti kódban megírtuk a lekérdezésünket, amely szerint az “id” és a “nev” mezőket szeretnénk lekérdezni. A lekérdezés eredményét eltároljuk a “$result” változóban. Az ezt követő “if” elágazásban megvizsgáltuk a lekérdezés eredményéül kapott sorok számát, ha ez nagyobb, mint nulla, akkor kiíratjuk a sorok számát a “mysqli_fetch_assoc” segítségével. Ha a lekérdezésünk eredmény nélkül végződne, akkor is adunk visszajelzést a felhasználónak.
MySQL lekérdezés készítése, írása PHP-ban PDO-val (MySQL select)
Először megnéztük objektumorientáltan, majd procedurálisan a lekérdezés írásának módszerét, most itt az ideje, hogy szemügyre vegyük a PDO-s megvalósítást.
Lekérdezés futtató szintaxis PDO esetében:
KAPCSOLAT->exec(SQL.KÓD); Code language: CSS (css)
Jegyezzük meg, hogy bármilyen SQL utasítást (új rekord felvitele, törlése, frissítése) szeretnénk végrehajtani PDO-s kapcsolat során, mindig az “exec” függvényt kell meghívnunk a kapcsolatra vonatkozóan, melynek egy paramétere van, az SQL utasítás.
Lekérdezés készítése PDO-s megvalósítással PHP környezetben:
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // hibakezelés beállítása // SQL utasítás $sql = "SELECT id, nev FROM programnyelvek"; $result = $conn->query($sql); // SQL kód futtatása while ($row = $result->fetch()) { // amíg van sor, addig megy a while ciklus echo "id: " . $row["id"]. ", név: " . $row["nev"]. " "; // rekord kiíratása } } catch (PDOException $e) { // ha hiba van, akkor ide lépünk be echo "Sikertelen művelet.: " . $e->getMessage(); // esetleges hiba kiíratása } $conn = null; // kapcsolat lezárása ?> Code language: PHP (php)
id: 1, név: PHP
id: 2, név: JavaScript
id: 3, név: Java
Először megírjuk az SQL kódunkat, majd a “$result” változóba eltároljuk a kód futtatásának az eredményét. Ezt követően a “while” ciklus segítségével addig íratjuk kifele a sorokat, amíg el nem fogynak. Hogy hány sorunk van, pontosabban, hogy meddig van sorunk, azt a “$result->fetch()” biztosítja.
Ha hasznos volt számodra, akkor kérlek oszd meg másokkal is, hogy ezzel támogass minket!
Rekord törlése MySQL adatbázis táblából PHP nyelvben (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
Rekord hozzáadása MySQL adatbázis táblájához PHP nyelvben (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
Rekord módosítása MySQL adatbázis táblájában PHP nyelv alatt (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
Tábla létrehozása MySQL adatbázisban PHP nyelv alatt (MySQLi objektumorientált, PDO és MySQLi procedurális megoldással)
#adatbázis #adatbázis műveletek PHP-ban #PDO #PHP #PHP ismeretek #PHP MySQL #PHP PDO #PHP PDO magyarul #PHP programozás #php tananyag #php tanfolyam #webfejlesztés #webprogramozás alapjai #webprogramozás alapok
Mi az a PHP? A PHP fogalma és bemutatása
PHP, Apache és XAMPP letöltése, telepítése
Hogyan és hova írjunk PHP kódot?
Komment, megjegyzés hozzáfűzése PHP kódhoz
PHP kiíratások, azaz echo és print + short open tag beállítása, használata
A legjobb PHP kódszerkesztő programok, IDE-k listája
PHP változók és konstansok fogalma, szintaxisa + példa létrehozásra, módosításra, lekérdezésre
Műveletek tömbökkel PHP-ban (Tömb létrehozása, elemek hozzáadása, felülírása, törlése, tömb hosszának megállapítása, elemeinek kiíratása)
Ciklusok a PHP-ban (for, while, do-while, foreach iterációk + break és continue használata)
Elágazások a PHP-ban (if és switch feltételes utasítás)
PHP alapok (PHP webprogramozás alapjai kezdőknek)
Operátorok a PHP-ban (Aritmetikai, értékadó, értéknövelő, értékcsökkentő, összehasonlító, logikai, feltételes értékadó, tömb- és szövegoperátorok)
Függvények a PHP-ban (Paraméteres és paraméter nélküli függvények létrehozása, meghívása, hivatkozás szerinti paraméterátadás, típusmegfeleltetés, alapértelmezett érték)
MySQL adatbázis-műveletek a PHP-ban (adatbázis-kapcsolat létrehozása, bezárása, tábla létrehozása, rekord hozzáadása, törlése, módosítása, lekérdezések írása)
Session, azaz munkamenetkezelés PHP-ban (Munkamenet indítása, session változók létrehozása, munkamenet megszűntetése)
Sütik kezelése PHP-ban (cookie létrehozása, módosítása, lekérdezése, törlése)
Űrlapkezelés a PHP-ban POST és GET metódus segítségével
SQL és XSS injekció elleni védelem PHP-ban (htmlspecialchars, real_escape_string és előkészített utasítások használata)
PHP titkosítás, avagy hogyan védjük a felhasználók adatait (password_hash() és password_verify() PHP függvények)
PHP include és require utasítások (+ include_once és require_once)
Fájlkezelés a PHP-ban (Fájl létrehozása, megnyitása, írása, törlése, lezárása)
PHP isset() függvény használata
PHP String függvények (Szöveg karaktereinek, szavainak megszámlálása, szöveg keresése, cseréje, nagy-, kisbetűssé alakítása, visszafele kiíratása)
PHP Math függvények (Matematikai függvények a PHP-ban) [abszolút érték, számrendszerek közötti váltás, szögfüggvények, radián és fok közötti átváltás, számok kerekítése, gyökvonás, logaritmus, pi]
Véletlenszerű (random) szám generálása PHP-ban (rand() és mt_rand() függvények használata)
Csatlakozás, kapcsolódás MySQL adatbázishoz PHP-ban (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
MySQL adatbáziskapcsolat lezárása PHP-ban (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
Tábla létrehozása MySQL adatbázisban PHP nyelv alatt (MySQLi objektumorientált, PDO és MySQLi procedurális megoldással)
Rekord hozzáadása MySQL adatbázis táblájához PHP nyelvben (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
Rekord módosítása MySQL adatbázis táblájában PHP nyelv alatt (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
Rekord törlése MySQL adatbázis táblából PHP nyelvben (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
MySQL lekérdezés készítése PHP-ban (MySQLi objektumorientált, PDO és MySQLi procedurális módszerrel)
A legjobb PHP keretrendszerek (13 PHP framework)