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. Tartalom  MySQL áttekintés  PHP MySQL függvények  Példák.

Hasonló előadás


Az előadások a következő témára: "6. előadás: PHP-MySQL Barabás Péter. Tartalom  MySQL áttekintés  PHP MySQL függvények  Példák."— Előadás másolata:

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

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 –p  SQL script futtatás  mysql –u -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)  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)  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ó 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);  ?> 

41 Script hívása gomb kattintásra – I.  Adjunk nevet és értéket a nyomógombnak   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  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

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. Tartalom  MySQL áttekintés  PHP MySQL függvények  Példák."

Hasonló előadás


Google Hirdetések