Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.