web technolÓgiÁk
DESCRIPTION
6. előadás: PHP-MySQL Barabás Péter. WEB TECHNOLÓGIÁK. Tartalom. MySQL áttekintés PHP MySQL függvények Példák. MySQL – Parancssori kliens. MySQL documentáció {MYSQL_INSTALL_DIR}\ docs \ manual _ toc.html Telepítési instrukciók WAMP, XAMPP részeként MySQL önállóan - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/1.jpg)
WEB TECHNOLÓGIÁK
6. előadás: PHP-MySQL
Barabás Péter
![Page 2: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/2.jpg)
Tartalom
MySQL áttekintés PHP MySQL függvények Példák
![Page 3: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/3.jpg)
MySQL – Parancssori kliens MySQL documentáció
{MYSQL_INSTALL_DIR}\docs\manual_toc.html Telepítési instrukciók
WAMP, XAMPP részeként MySQL önállóan
Csatlakozás parancssorból mysql [OPTIONS] [DB] mysql –u <usernév> –p <dbnév>
SQL script futtatás mysql –u <usernév> -p < script.sql
GUI client Mysql Control Center PhpMyAdmin
![Page 4: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/4.jpg)
Adattábla létrehozás
Web_db adatbázis létrehozása: CREATE DATABASE web_db;
Notes nevű tábla létrehozása: USE web_db; CREATE TABLE notes (…); Teszt adatok beszúrása
Érdemes script fájlban megírni majd futtatni az előbb említett módokon
![Page 5: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/5.jpg)
Alap utasítások(emlékeztető) CREATE
Adatbázisok és táblák (egyéb objektumok) létrehozása SELECT
Táblaadatok lekérdezése adott feltételre illeszkedően DELETE
Egy vagy több sor törlése a táblából INSERT
Új sor (vagy sorok) beszúrása a táblába UPDATE
Rekord módosítás ALTER
Tábla (egyéb db objektum) szerkezet módosítása
![Page 6: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/6.jpg)
PHP-MySQL függvények
Kapcsolódás adatbázishoz Lekérdezés Eredmények kezelése Erőforrások felszabadítása Kapcsolat bezárás
![Page 7: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/7.jpg)
Kapcsolódás adatbázishoz
mysql_connect(server, username, password) Kapcsolódás a MySQL szerverhez egy adott porton Alapértelmezetten: „localhost:3306” Username és password sztring típusúak Visszatérési érték FALSE hiba esetén
Példa $db_link =
mysql_connect("localhost:3306","test", "123");
Létezik perzisztens kapcsolat: mysql_pconnect
![Page 8: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/8.jpg)
Példa
![Page 9: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/9.jpg)
Adatbázis kiválasztása
mysql_select_db(name, link) Name: adatbázis neve (sztring) Link: opcionális, egy nyitott kapcsolat
referenciát vár, amit a connect visszaad Amennyiben a link nincs megadva, az
utolsó nyitott kapcsolatot használja Visszatési érték: TRUE sikeresség
esetén, egyébként FALSE Példa
mysql_select_db("web_db");
![Page 10: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/10.jpg)
Példa
![Page 11: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/11.jpg)
Hibakezelés – I.
mysql_error(link) Hibaüzenettel vagy hibakóddal tér vissza Link opcionális Az utolsó nyitott kapcsolatot használja,
amennyiben a link nincs megadva Ha nincs hiba, akkor üres stringgel
tér vissza Példa
mysql_error();
![Page 12: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/12.jpg)
Hibakezelés – II.
mysql_no(link) A hiba kódjával tér vissza Link opcionális Az utolsó nyitott kapcsolatot használja,
amennyiben a link nincs megadva Ha nincs hiba, a visszatérési érték 0 Példa
mysql_no();
![Page 13: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/13.jpg)
Példa
![Page 14: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/14.jpg)
Utasítások készítése – I.
mysql_query(query, link) select lekérdezést készítése A query a lekérdezés szövege Ne tartalmazzon a query záró pontosvesszőt A visszatérési értéke egy erőforrás azonosító,
vagy FALSE, amennyiben a lekérdezés Hibás SHOW vagy DESCRIBE
Példa (a books tábla összes sorának lekérdezése) $query = "SELECT * FROM books"; $result = mysql_query($query);
![Page 15: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/15.jpg)
Utasítások készítése – II. INSERT and UPDATE utasítások
erőforrás Visszatérési érték:
TRUE sikeresség esetén FALSE hiba esetén
Példa (a könyv tábla szerkezeti leírása) $query = "DESCRIBE books"; $status = mysql_query($query);
![Page 16: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/16.jpg)
Példa
![Page 17: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/17.jpg)
Metadatok kezelése
mysql_list_fields(database, table, link) Metadatokat szolgáltat az adott
adatbázis adott táblájáról A visszatérési érték tartalmazza a tábla
metaadatait (oszlopnevek, típusok) Példa
$fields = mysql_list_fields("web_db", "books");
![Page 18: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/18.jpg)
Tábla mezőinek darabszáma
mysql_num_fields(result) A tábla mezőinek darabszámát adja vissza A result paraméter egy erőforrás
referencia, amit a mysql_list_fields függvény ad vissza
Példa $fields = mysql_list_fields("web_db",
"books"); $num_columns =
mysql_num_fields($fields);
![Page 19: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/19.jpg)
Tábla mezőinek neve
mysql_field_name(result, index) A tábla index-edik mezőjének nevével tér
vissza (index: 0,1,…) A result paraméter egy erőforrás
referencia, amit a mysql_list_fields függvény ad vissza
Példa: az első mező neve $fields = mysql_list_fields("web_db",
"books"); $isbn = mysql_field_name($fields, 0);
![Page 20: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/20.jpg)
Példa
![Page 21: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/21.jpg)
Adatsorok kezelése – I.
mysql_fetch_row(result) Minden hívása egy indexelt tömb következő
sorával tér vissza A result paraméter egy erőforrás referencia,
amit a mysql_query függvény ad vissza A visszatérési érték FALSE, ha már nincs több
sor Példa
$query = "SELECT * FROM books"; $result = mysql_query($query); $row = mysql_fetch_row($result); // row 0 $isbn = $row[0]; // isbn for row 0
![Page 22: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/22.jpg)
Adatsorok kezelése – II.
mysql_fetch_assoc(result) Működése hasonló a mysql_fetch_row
működéséhez, de a következő sorra egy asszociatív tömbként hivatkozhatunk
Példa $query = "SELECT * FROM books"; $result = mysql_query($query); $row =
mysql_fetch_assoc($result); // row 0 $isbn = $row['isbn']; // isbn for row 0
![Page 23: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/23.jpg)
Adatsorok kezelése – III.
mysql_fetch_array(result) A mysql_fetch_row, mysql_fetch_assoc
kombinációja A következő sorra asszociatív és indexelt
tömbként is lehet hivatkozni Példa
$query = "SELECT * FROM books"; $result = mysql_query($query); $row = mysql_fetch_array($result); // row 0 $isbnA = $row[0]; // isbn for row 0 $isbnB = $row['isbn']; // can also get it this
way
![Page 24: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/24.jpg)
Adatsorok kezelése – IV.
mysql_num_rows(result) Egy lekérdezés eredményrekordjainak
számát adja vissza Result a mysql_query által visszaadott
erőforrás mysql_affected_rows(result)
INSERT, UPDATE, or DELETE utasítások után használatosak
Visszatér az érintett rekordok számával result paraméter a mysql_query visszatérési
értéke
![Page 25: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/25.jpg)
Egyéb függvények
mysql_real_escape_string(string,link) Visszatér egy átalakított sztinggel, amit
biztonságosan használhatunk a mysql_query-ben MySQL 4.1-től használhatóak a mysqli_...
Függvények Több lehetőség, Új funkcionalitások OO interface Tárolt eljárások támogatása Tranzakciókezelés Fejlettebb debugolási lehetőségek
![Page 26: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/26.jpg)
Erőforrások felszabadítása mysql_free_result(result)
Egy adott erőforrás által lefoglalt memória felszabadítása
Result: erőforrás referencia Hívása nem szükséges, kivéve nagy
eredményhalmazok esetén Automatikusan lefut, amikor a script futása
véget ér mysql_close(link)
Bezárja az adatbázis kapcsolatot Perzisztens kapcsolatokra nincs hatással
![Page 27: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/27.jpg)
Mezőnevek feldolgozása
![Page 28: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/28.jpg)
Eredményrekordok feldolgozása – I.
![Page 29: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/29.jpg)
Eredményrekordok feldolgozása – II.
![Page 30: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/30.jpg)
Db_connect függvény
Scriptekben használatos Érdemes egy db_connect.php nevű
file-ba írni és includálni
![Page 31: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/31.jpg)
Books adatbázis példa – I.Books.sql
![Page 32: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/32.jpg)
Books adatbázis példa – II.
Books.sql
![Page 33: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/33.jpg)
Books adatbázis példa – III. books.sql futtatása
parancssorban mysql -u xxxxx -p < c:/.../books.sql
Lehet phpMyAdmin-ban is Következő lépés:
Dbase.php írása A könvyadatokat megjeleníti HTML
táblázatban
![Page 34: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/34.jpg)
Books adatbázis példa – IV.
![Page 35: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/35.jpg)
Dbase.php – I.
HTML header info
![Page 36: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/36.jpg)
Dbase.php – II.
Kapcsolódás $db_link = db_connect("web_db");
Ez a függvény a db_connect.php include file-ban van
Az include path a php.ini-ben definiált include_path=".;c:\Apache\
phpincludes"
![Page 37: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/37.jpg)
Dbase.php – III.
Lekérdezzük az összes rekordot az összes mezővel $query = "SELECT * FROM books"; $result = mysql_query($query) or
die("SQL Query failed"); Tábla tulajdonságok lekérdezése
$fields = mysql_list_fields("web_db", "books");
$num_columns = mysql_num_fields($fields)
![Page 38: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/38.jpg)
Dbase.php – IV.
A mezőfejléceket a HTML táblázat fejlécébe írjuk ki
![Page 39: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/39.jpg)
Dbase.php – V.
A könyv adatokat egy HTML táblázatként írjuk ki
![Page 40: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/40.jpg)
Dbase-php – VI.
Szabadítsuk fel az erőforrásokat és zárjuk be a kapcsolatot mysql_free_result($result); mysql_close($db_link); ?> </body> </html>
![Page 41: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/41.jpg)
Script hívása gomb kattintásra – I. Adjunk nevet és értéket a nyomógombnak
<input type="submit" name="choice" value="Display">
Ha a form submitálódik, akkor a név index létező lesz if (isset($_REQUEST['choice']) {
// process the button click here } ...
Több submit gomb esetén a neveknek és értékeknek különbözniük kell
![Page 42: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/42.jpg)
Script hívása gomb kattintásra – II. Másik előnye a submit gomb label-
jének (értékének) használatának, hogy meg tudunk különböztetni választási lehetőségeket
Több submit gombnak lehet ugyanaz a neve, de az értékekben különbözniük kell
![Page 43: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/43.jpg)
Script hívása linkben
Egy link alkalmas lehet arra, hogy meghívjunk egy scriptet vele, vagy paramétereket adjunk át a GET metódust használva
![Page 44: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/44.jpg)
Javaslatok weboldal
Felhasználók javaslatokat tehetnek azáltal, hogy egy textarea-t kitöltenek és elküldik
A javaslatok egy MySQL adatbázisban mentődnek el (web_db)
A javaslatok időrendben kerülnek megjelenítésre
![Page 45: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/45.jpg)
Javaslat doboz megjelenés
![Page 46: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/46.jpg)
Sbox.sql
![Page 47: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/47.jpg)
Script logika
IF új javaslat kérelem érkezett THEN Jelenítsük meg az űrlapot
ELSE IF form submitálódott THEN
Szúrjuk be a javaslatot az adatbázisba ENDIF Kérdezzük le a javaslatokat az adatbázistáblából IF létezik javaslat, azaz a lekérdezés nem üres THEN
Jelenítsük meg ELSE
Javaslat táblázat üres ENDIF
ENDIF Kínáljuk fel a linket, hogy a felhasználó tudjon
megadni javaslatokat
![Page 48: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/48.jpg)
Sbox.php – I.
![Page 49: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/49.jpg)
Sbox.php – II.
![Page 50: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/50.jpg)
Sbox.php – III.
![Page 51: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/51.jpg)
Sbox.php – IV.
![Page 52: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/52.jpg)
Más verziók
Létezik: sbox2, sbox3, sbox4 Sbox2 a HTML text értékeket kvótázza,
helyesen kezeli Sbox3-ban hiba ellenőrzés is van Sbox4 az sbox3 egyszerűsített verziója
Form mindig látható Nincs szükség linkre
![Page 53: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/53.jpg)
Sbox4.php – I.
![Page 54: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/54.jpg)
Sbox4.php – II.
![Page 55: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/55.jpg)
Sbox4.php – III.
![Page 56: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/56.jpg)
Sbox4.php – IV.
![Page 57: WEB TECHNOLÓGIÁK](https://reader037.vdocuments.pub/reader037/viewer/2022110405/568132ff550346895d99ba06/html5/thumbnails/57.jpg)
Köszönöm a figyelmet!