Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaDiána Kozmané Megváltozta több, mint 10 éve
1
Adatbázis-kezelés Tarcsi Ádám (ade@inf.elte.hu)ade@inf.elte.hu 2011. január. 15. MySQL és PHP
2
Mai anyag MySQL és a phpMyAdmin Admin műveletek Tárolt eljárások, triggerek Tranzakciókezelés MySQL-ben
3
MySQL és a phpMyAdmin http://ikon.inf.elte.hu/wiki/index.php?title=MySQL_t%C3%ADpusok http://ikon.inf.elte.hu/wiki/index.php?title=MySQL_t%C3%ADpusok http://db-tanar.elte.hu/FSZ_levelezo- 1/Gyakorlat/MySQL_es_a_phpMyAdmin.docx http://db-tanar.elte.hu/FSZ_levelezo- 1/Gyakorlat/MySQL_es_a_phpMyAdmin.docx 3
4
Gyakorlás: Albums tábla Létrehozás: CREATE TABLE IF NOT EXISTS `albumok` ( `id` int(10) NOT NULL, `nev` varchar(45) character set utf8 collate utf8_hungarian_ci NOT NULL, `leiras` varchar(100) character set utf8 collate utf8_hungarian_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Feltöltés INSERT INTO `albumok` (`id`, `nev`, `leiras`) VALUES (1, 'Album1', 'Első album'), (2, 'Album2', 'Második album'); 4
5
MySQL admin műveletek – 1. Start server: /etc/init.d/mysql start Stop server: /etc/init.d/mysql stop Restart server: /etc/init.d/mysql restart Mentés (Dump): $ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sq l] Visszatöltés (Restore): mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql] 5
6
MySQL admin műveletek – 2. User létrehozás: CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1'; Adatbázis létrehozás: CREATE DATABASE user1; Jogok adása: GRANT all privileges on user1.* to 'user1'@'localhost' identified by 'wabp2010'; User törlés: DROP USER 'user1'@'localhost'; Adatbázis törlés: DROP DATABASE if exists user1; 6
7
Tárolt eljárások delimiter // CREATE PROCEDURE elsoproc(OUT param1 INT) BEGIN SELECT COUNT(*) INTO param1 FROM albumok; END// delimiter ; CALL elsoproc(@a) SELECT @a; 7
8
Trigger 8
9
Tranzakciókezelés – 1. $tranz= mysql_query(" BEGIN WORK; SELECT adatok FROM test WHERE id='1' FOR UPDATE; ROLLBACK; UPDATE test SET adatok=adatok-1100 WHERE id='1'; COMMIT; "); 9
10
Tranzakciókezelés – 2. <?php $utaltOsszeg = 500; //célszámla kikeresése $e = mysql_query("SELECT id FROM bankszamlak WHERE szamlaszam = '12345678-12345678'"); $celszamla = mysql_fetch_row($e); //az indító számla egyenlege elegendő az utaláshoz? $e = mysql_query("SELECT id, egyenleg FROM bankszamlak WHERE szamlaszam = '87654321- 87654321'"); $utalo = mysql_fetch_array($e); if($utalo['egyenleg'] >= $utaltOsszeg){ //ha elegendő az egyenleg vonjuk le belőle //tranzakció indítása mysql_query("START TRANSACTION"); mysql_query('UPDATE bankszamlak SET egyenleg = egyenleg-'. $utaltOsszeg. ' WHERE id = '. $utalo['id']); //adjuk hozzá a célszámla egyenlegéhez mysql_query('UPDATE bankszamlak SET egyenleg = egyenleg+'. $utaltOsszeg. ' WHERE id = '. $celszamla[0]); //eddig minden rendben hajtsuk végre a tranzakciót mysql_query('COMMIT'); } ?> 10
11
PHP és az adatbázisok Telepítés: AMP, kiterjesztések - egyszerű Speciális függvényeken/osztályokon, (csomag kiterjesztésekkel) keresztül érjük el. ▪ mysql: ▪ mysqli: ▪ OCI8: Oracle (ezekhez Oracle kliens is szükséges) Adatbázisok felderítése: ▪ phpinfo() Segítség: ▪ http://hu2.php.net/manual/en/book.mysqli.php http://hu2.php.net/manual/en/book.mysqli.php 11
12
Tipikus adatbázis használat Kapcsolódás SQL utasítások futtatása (pl.: lekérdezés) Eredmények feldolgozása Kapcsolat bontása 12
13
Gyakorlat 1. "régi" mysql függvények használatával. 2. Új mysqli fügvényekkel 3. Szűrés megvalósítása 4. BIND 5. Adatbáziselérési réteg absztrakciója: mysql.inc
14
14 BIND: SQL változóhoz kötjük a PHP változót Az SQL utasítás (1) parszolása (2) után a belső változókat feltöltjük az értékekkel (3), majd kiadjuk a futtatás parancsát (4). 1.$sql=”insert into album (nev, leiras, user_id) values (:nev, :leiras, :user_id)”; 2.$stmnt = OCIParse($conn, $sql); 3.OCIBindByName(, belső változó, érték, hossz (-1 az automatikus méretmegadás)); OCIBindByName($stmnt,":nev",$nev,-1); OCIBindByName($stmnt,":leiras",$leiras,- OCIBindByName($stmnt,":user_id",$user_id,-1); 4.OCIExecute($stmnt);
15
.htaccess egyéni hibalapok (404-es hiba) jelszavas védelem látogatók tiltása IP alapján alapértelmezett fájl megváltoztatása (pl. index.html alma.php) átirányítások könyvtárlistázás tiltása adott fájlok elérésének letiltása
16
Példa DirectoryIndex jelentkezes.php Deny from all
17
Jelszavas védelem AuthName "Protected Area" AuthType Basic AuthUserFile /usr/home/www/lapodcime/vedettkonyvtar/.ht passwd require valid-user.htpasswd nev:$3$OAvE458H4vgG
18
Látogatók engedélyezése / tiltása IP cím alapján order allow,deny allow from 123.45.6.7 allow from 012.34.5. deny from all
19
Egyéb.htaccess Átirányítás: Redirect /regikonyvtar/ http://www.honlapodcime.hu/ujkonyvtar/ RedirectMatch 301 ^/njszt-ikon/$ /ikon.htm Könyvtárlistázás tiltása IndexIgnore * IndexIgnore *.gif *.jpg Könyvtárlistázás engedélyezése Options +Indexes
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.