Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

6. előadás: PHP-MySQL Barabás Péter

Hasonló előadás


Az előadások a következő témára: "6. előadás: PHP-MySQL Barabás Péter"— Előadás másolata:

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

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

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) Ha nincs hiba, a visszatérési érték 0
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 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);

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) Példa
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) Példa
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ó 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

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

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

34 Books adatbázis példa – IV.

35 Dbase.php – I. HTML header info

36 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"

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

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 érkezett THEN ELSE
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 Javaslat táblázat üres 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.

51 Sbox.php – IV.

52 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

53 Sbox4.php – I.

54 Sbox4.php – II.

55 Sbox4.php – III.

56 Sbox4.php – IV.

57 Köszönöm a figyelmet!


Letölteni ppt "6. előadás: PHP-MySQL Barabás Péter"

Hasonló előadás


Google Hirdetések