| start Webszerkesztés MySQL, adatbázis A MySQL adatbázishoz való csatlakozás, és annak használata |
| A kereséshez kattints a fentebb látható mezőbe > írd be a keresett kifejezést majd nyomj egy ENTER-t. FRISS FÓRUMTÉMÁK offtopic III. [s2gg] Help! [s2gg] "ejtsd így:" [Mozaik] Joomla! (Mambo 4.5.x) [Ergate] Php-s Probléma... [unduruxi] Emotikon hetek [Jackson] Ünnep [Cony] CSS Help! [Anybudi] Érdekes, értékes weblapok [Brian] vélemény - tutorial.hu [Balázs] LAPAJÁNLÓ http://web-solution.hu kiemelkedően jó tárhelyszolgáltatás (tapasztalatok alapján) RSS / META STATISZTIKA |  |
A MySQL adatbázishoz való csatlakozás, és annak használata |  |
Írta: TLoF
- Ez a leírás igyekszik bemutatni a PHP és a MySQL viszonyát a kapcsolódástól egészen az első lekérdezésig. A leírás készítésekor úgy veszem, hogy van egy webszervered, azon egy futó PHP (PHP>=4.1), egy MySQL adatbázis szerver, és mindezekhez hozzáférésed. A következő PHP parancsokat fogjuk használni. mysql_connect mysql_error mysql_select_db mysql_query mysql_fetch_row mysql_fetch_assoc mysql_fetch_array Na ha a szükséges előkészületekkel megvagyunk, akkor kezdjünk is neki. Első körben ajánlatos lenne csatlakozni a szerverhez: mysql_connect('host', 'felhasználónév', 'jelszó'); Ez sok magyarázot nem igényel, az esetek nagy többségében a host az a localhost, a felhasználónevet, és jelszót pedig megkaptuk a rendszergazdától. Azonban illik felkészülni a nem várt eseményekre is, úgyhogy rögtön egészítsük ki kis scriptünket némi hibakezeléssel. if(!@mysql_connect("host", "felhasználónév", "jelszó")) { print "Nem lehet csatlakozni az adatbázis szerverhez. A hiba oka: " . mysql_error(); exit } Rövid magyarázat: a @-cal elrejtettük az esetleges hibaüzenetek, hogy a felhasználó ne lásson semmit sem belőle, és utánna megjelenítjük a saját hiba üzenetünket. a mysql_error -al pedig lekérdeztük a mysql-t hogy mi történt, miért nem tudtunk csatlakozni a szerverhez. Most ha minden jól ment sikeresen csatlakoztunk a szerverhez. Ezek után meg kell mondani, hogy melyik adatbázist szeretnék használni. (Egy mySQL szerveren lehet sok adatbázis adatbázisonként számtalan táblával, ezekben rengetek rekord tele információval). mysql_select_db("adatbázisneve"); Ezzel megtörtént a kiválasztás, ezt sem árt persze ellenőrizni. if(!@mysql_select_db("adatbázisneve")) { print "Nem lehet elérni az adatbázist A hiba oka: " . mysql_error(); exit } Hasznos jó tanács, ha a csatlakozást elvégző parancsokat egy külön php file-ban tároljuk, és csak egy include-dal beszúrjuk, oda ahol szükségünk van rá. A módszer előnye, hogy mindenhol rendelkezésre fog állni a kapcsolat, és hogy bármilyen információ cseréje esetén elég csak 1 helyen módosítani. Ez az a pont, ahol fel kell bizonyos SQL alap ismeretek megléte esetén lehet tovább lépni. Ha ezek hiányoznak, kérlek néz körül ezen a lapon a többi leirás között megtalálod őket. Jelen pillanatban van kapcsolatunk, és kiválaszott adatbázisunk, amire a kérések vonatkozni fognak. Kérést a mysql_query("sql_lekérdezés") formában tudunk feltenni az adatbázisnak, az eredményül kapunk vissza egy azonosítót, arról, hogy hol találjuk a választ. $eredmeny = mysql_query("sql_lekredezes"); A válasz kinyeréséhez több mód is rendelkezésünkre áll. Ezek a parancsok nagyon hasonlóak, csak a végeredményül vissza kapott tömb tulajdonságai különböznek. mysql_fetch_row: Csak számozott tömböt ad vissza, a tömbben az elemek a query sorrendjében találhatók. mysql_fetch_array: Mind számozott, mind pedig nevesített(asszociativ) tömböt vissza ad, ahol a nevek megegyeznek a mysql tábla mezőinek a neveivel. mysql_fetch_assoc: csak nevesített tömböt ad vissza. Nézzük egy példán keresztül a dolgot. Van egy adatbázisunk benne egy emberek táblával. A tábla felépítése a következő:
  Nev | Magassag | szuletesidatum | nem
  János | 180 | 1978/11/25 | férfi
  Gábor | 160 | 1976/06/12 | férfi
  Ilona | 172 | 1979/10/02 | Nő
  Lekérdezés: SELECT nev, magassag,szuletesidatum FROM emberek LIMIT 1 A vissza kapott sor:
  János | 180 | 1978/11/25 | férfi
A PHP két különbőző módszere az adatok kinyerésének: $lekerdezes_row = mysql_fetch_row($eredmeny) $lekerdezes_assoc = mysql_fetch_assoc($eredmeny) A két lekérdezés ugyan azokat az eredményeket fogja hozni (természetesen), de különböző formában, míg a $lekerdezes_row igy tartalmazza az adatokat: $lekerdezes_row[1] = "János"; $lekerdezes_row[2] = "180"; $lekerdezes_row[3] = "1978/11/25"; Addig a $lekerdezes_assoc a következő formában tárolja adatainkat: $lekerdezes_assoc["nev"] = "János"; $lekerdezes_assoc["magassag"] = "180"; $lekerdezes_assoc["szuletesidatum"] = "1978/11/25"; Azonban a legtöbb esetben a lekérdezésünk több mint 1 sort ad vissza eredményül (itt most kifejezetten kértük, hogy csak 1 sort szeretnénk) while($adat = mysql_fetch_assoc($eredmeny)) { print $adat["mezonev"]; } És a while cikluson belül azt csinálunk a rendelkezésre álló adatokkal amit csak akarunk, azonban arra vigyázzunk, hogy a $eredmeny változó értékét ne írjuk felül. Ezek után már csak egy dolog maradt hátra, hogy bezárjuk a kapcsolatunkat a mysql_close(); utasítással. Az esetek többségében ezzel nem kell foglalkozni, hiszen a php a script lefutása után automatikusan lezárja az összes nyitott kapcsolatunkat, felszabadítja a változók által foglalt memória területet. Ezzel rövid(?) leirásunk végére értünk. A következőkben átnézzük majd, hogy miért jó ha adatbázisokat használunk, és néhány bonyolultabb lekérdezést.
< Előző |  | Következő >
[vissza]
(C) 2006 www.tutorial.hu - photoshop és webszerkesztés leírások Joomla! is Free Software released under the GNU/GPL License. | ### FÓRUMOK [WEB] Honlapkészítés témában az alábbi 2 alfórumunkat tekintsd meg: - webprogramozás (PHP, MySQL) - webszerkesztés, webdesign (ami a honlapkészítéssel kapcsolatos lehet) Az olvasáshoz nem, de a hozzászóláshoz regisztrálni kell magad. Javasoljuk a kereső használatát a kérdések feltevése előtt.. ;) ### LETÖLTÉSEK [WEB] Forráskód szerkesztők Könyvek Link menedzsment Kódoptimalizálás Scriptek, kódok Szervercsomagok ### ONLINE CUCCOK Linkek... - URL "tisztítás" - Url továbbítás - Linkrövidítés - Linkhosszabítás - halott linkek ellenőrzése - Aktuális IP címed Színek... - Colormixers - wellstyled.com - ReedDesign Colors - crieseuwebsite.com - more.btexact.com - colorcube - behr.com - workbook - Defence Mechanism ColorToy - ColorWhore - dev.sessions.edu - ficml.org - colorschemer.com - online - themaninblue.com - technicolor - colormatch.dk - nebulus.org - fullscreen color picker CSS... - Jano - CSS, usability stb. - js.hu CSS puska - CSS Box Border Teszt - CSS - CSS compatibility - Gördítősáv módosítása - CSS lapgenerátor I. Biztonság... - .htaccess és .htpasswd - .htaccess user tiltás - Egyéni hibalapok - Htaccess direktlink tiltás - Jelszavas védelem - Jelszó generátor I. - Jelszó generátor II. - MD4, MD5, SHA-1 Forráskód... - Tidy (online HTML tisztító) - HTML encoder - HTML titkosítás - E-mail encoder Generálnak ezt-azt... - i-Frame - Marquee - Felugró ablak I. - Felugró ablak II. - Meta tagok - Favicon I. - Favicon II. Képekhez... - JPG PNG GIF optimalizáló - kulcsszavak (keywords) - Online képszerkesztő - Honlap betöltési ideje - robots.txt generator Mintaszöveg... - lipsum.com - lorem-ipsum.info - malevole.com Fordítás... - translit.ru - dict.sztaki.hu szótár - babelfish szótár Egyéb... - - HTMLinfo - webes technológiák - Webdesigner's Handbook |