1 / 57

WEB TECHNOLÓGIÁK

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

Download Presentation

WEB TECHNOLÓGIÁK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 6. előadás: PHP-MySQL Barabás Péter WEB TECHNOLÓGIÁK

  2. Tartalom • MySQL áttekintés • PHP MySQL függvények • Példák

  3. MySQL – Parancssori kliens • MySQLdocumentá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 • MysqlControl Center • PhpMyAdmin

  4. 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

  5. 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

  6. 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

  7. 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 passwordsztring típusúak • Visszatérési értékFALSE hiba esetén • Példa • $db_link = mysql_connect("localhost:3306","test", "123"); • Létezik perzisztens kapcsolat:mysql_pconnect

  8. Példa

  9. 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");

  10. Példa

  11. 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();

  12. 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();

  13. Példa

  14. Utasítások készítése – I. • mysql_query(query, link) • select lekérdezést készítése • A querya 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);

  15. 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);

  16. Példa

  17. 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");

  18. 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);

  19. 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);

  20. Példa

  21. 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

  22. Adatsorok kezelése – II. • mysql_fetch_assoc(result) • Működése hasonló amysql_fetch_rowmű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

  23. 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

  24. 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

  25. Egyéb függvények • mysql_real_escape_string(string,link) • Visszatér egy átalakított sztinggel, amit biztonságosan használhatunk amysql_query-ben • MySQL 4.1-től használhatóak amysqli_... 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

  26. 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

  27. Mezőnevek feldolgozása

  28. Eredményrekordok feldolgozása – I.

  29. Eredményrekordok feldolgozása – II.

  30. Db_connect függvény • Scriptekben használatos • Érdemes egy db_connect.php nevű file-ba írni és includálni

  31. Books adatbázis példa – I. Books.sql

  32. Books adatbázis példa – II. Books.sql

  33. Books adatbázis példa – III. • books.sql futtatása parancssorban • mysql-uxxxxx-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

  34. Books adatbázis példa – IV.

  35. Dbase.php – I. • HTML headerinfo

  36. Dbase.php – II. • Kapcsolódás • $db_link = db_connect("web_db"); • Ez a függvény a db_connect.phpinclude file-ban van • Az include path aphp.ini-bendefiniált • include_path=".;c:\Apache\phpincludes"

  37. 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)

  38. Dbase.php – IV. • A mezőfejléceket a HTML táblázat fejlécébe írjuk ki

  39. Dbase.php – V. • A könyv adatokat egy HTML táblázatként írjuk ki

  40. 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>

  41. 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 formsubmitá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

  42. 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

  43. 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

  44. 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

  45. Javaslat doboz megjelenés

  46. Sbox.sql

  47. Script logika • IF új javaslat kérelem érkezettTHEN • Jelenítsük meg az űrlapot • ELSE • IF formsubmitálódottTHEN • 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 üresTHEN • 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

  48. Sbox.php – I.

  49. Sbox.php – II.

  50. Sbox.php – III.

More Related