PHP 2. Karakterláncok formázása A PHP lehetıvé teszi a karaktersorozatok elızetes formázást, mint tizedestörtek valahány tizedes pontosságra kerekítése, vagy egy mezın belül jobbra vagy balra igazítás, vagy egy szám különbözı számrendszerekben megjelenítése.
A printf() függvény használata A függvény elsı bemenete egy karakterlánc, más néven formázó karakterlánc, majd utána különbözı típusú paraméterek. A formázó karakterlánc feladat a további paraméterek megjelenítésének meghatározása. Példa: egy egész szám decimális értékként való kiírása: printf("az én számom az %d", 55); // azt írja ki, hogy "az én számom az 55"
A formázó karakterláncban (ami az elsı paraméter) egy különleges kódot helyeztünk el, amely átalakítási meghatározásként ismert. Az átalakítási meghatározás százalékjellel (%) kezdıdik, és azt határozza meg, hogyan kell a printf() függvény neki megfelelı paraméterét kezelni. Egyetlen formátumvezérlı karakterláncba több átalakítási meghatározást írhatunk. Példa: két számot írjunk ki a printf() használatával: printf("Az elsı szám: %d
\nA második szám: %d
\n",55,66); //Az elsı szám: 55 //A második szám: 66
A printf() és a típusleírók Egy típusleíróval már találkoztunk, ez volt a d, amely az adatot decimális formátumban jeleníti meg. Típusleíró
d b c f o s x X
Leírás
A paramétert decimális számként jeleníti meg. Egész számokat bináris számként jelenít meg. Egy egész számot annak ASCII megfelelıjeként jelenít meg. A paramétert lebegıpontos számként (double) ábrázolja. Egy egész számot oktális (8-as számrendszerő) számként jelenít meg. A paramétert karakterláncként jeleníti meg. Egy egész számot kisbetős hexadecimális (16-os számrendszerő) számként jelenít meg. Egy egész számot nagybetős hexadecimális (16-os számrendszerő) számként jelenít meg
Az alábbi példaprogram a printf() függvénnyel egy számot jelenít meg a típusleírók segítségével. Vegyük észre, hogy a formázó karakterlánc nem egyszerően csak átalakítási meghatározásokat tartalmaz, minden további benne szereplı szöveg kiíródik.
Program (printf.php): Néhány típusleíró használatának bemutatása ", $szam ); printf("Bináris: %b
", $szam ); printf("Lebegıpontos: %f
", $szam ); printf("Oktális: %o
", $szam ); printf("Karakterlánc: %s
", $szam ); printf("Hexa(kisbetős): %x
", $szam ); printf("Hexa(nagybetős): %X
", $szam ); ?>
A printf() függvényt használhatjuk arra, hogy a három, 0 és 255 közé esı decimális számot azok hexadecimális megfelelıire alakítsuk át (RGB színkódok HTML-ben): $piros = 204; $zold = 204; $kek = 204; printf("#%X%X%X", $piros, $zold, $kek); // azt írja ki, hogy "#CCCCCC"
Megjegyzés: A HTML színkódjában minden hexadecimális számot két karakteresre kell kitölteni, ami gondot okoz, ha például az elızı kódrészlet $piros, $zold, $kek változóit úgy módosítjuk, hogy 1-et tartalmazzanak. Kimenetül "#111" -et kapnánk. A bevezetı nullák használatát egy kitöltésleíró (kitöltı paraméter) segítségével biztosíthatjuk.
A kimenet kitöltése a kitöltésleíróval Beállíthatjuk, hogy a kimenet bizonyos karakterekkel megfelelı szélességőre töltıdjön ki. A kitöltésleíró közvetlenül az átalakító paramétert kezdı százalékjelet követi. Példa: a kimenetet bevezetı nullákkal szeretnénk kitölteni 4 karakter hosszan: printf( "%04d", 36 ); // a kimenet "0036" lesz
Ha a kimenetet bevezetı szóközökkel szeretnénk kitölteni: printf( "% 4d", 36); // azt írja ki, hogy "
36"
Megjegyzés: A HTML dokumentumokban az egymás követı szóközök nem jelennek meg, ha azonban a megjelenítendı szöveget <pre> blokkba helyezzük, akkor biztosíthatjuk a szóközök és sortörések megjelenítését. <pre>
láthatóvá
válnak."
Most már javíthatjuk a korábbi HTML színkódos példánkat: Program (rgb.php): $piros = 1; $zold = 1; $kek = 1; printf( "#%02X%02X%02X", $piros, $zold, $kek ); // azt írja ki, hogy "#010101" ?>
A mezıszélesség meghatározása Meghatározhatjuk a kimenet által elfoglalt mezı szélességét is. A mezıszélességleíró olyan egész szám, amely a százalékjel után következik az átalakítási meghatározásban (feltéve, hogy nem használunk helykitöltı karaktereket). Példa: egy négyelemő felsorolás, amelynek mezıszélessége 20 karakternyi. print "<pre>"; printf("%20s\n", printf("%20s\n", printf("%20s\n", printf("%20s\n", print "";
"Könyvek"); "CD-k"); "Játékok")• "Magazinok");
A kimenet alapértelmezés szerint a mezın belül jobbra igazodik. A balra igazítást a mezıszélesség-leíró elé tett mínuszjellel (-) érhetjük el. printf("%-20s\n", "Balra zárt");
A pontosság meghatározása Ha az adatot lebegıpontos formában szeretnénk megjeleníteni, meghatározhatjuk a kerekítés pontosságát. , mely egy pontból és egy számból áll, és közvetlenül a típusleíró elé kell írni. A megadott szám határozza meg, hány tizedesre szeretnénk kerekíteni. Ez a leíró paraméter csak akkor érvényes, ha a kimenet típusleírója f: printf("%.2f\n", 5.333333); // azt írja ki, hogy "5.33"
Átalakító paraméterek - Összefoglalás Név
Kitöltésleíró Mezıszélességleíró Pontosságleíró Típusleíró
Leírás
A kimenet által elfoglalandó karakterszámot és a kitöltésre használt karaktert adja meg. A formázandó karakterlánc méretét adja meg. Meghatározza, hogy a kétszeres pontosságú számokat hány tizedesre kell kerekíteni. Meghatározza az eredmény adattípusát.
Példa
' 4' '20' '.4' 'd'
Program (printf-form.php): Termékárlista formázása a printf() függvénnyel "222.4", "Gyertyatartó" => "4", "Kávézóasztal" => "80.6" ); print "<pre>"; printf("%-20s%23s\n", "Név", "Ár"); printf("%'-43s\n", ""); foreach ( $termekek as $kulcs=>$ertek ){ printf( "%-20s%20.2f\n", $kulcs, $ertek ); } print ""; ?>
Formázott karakterlánc tárolása A sprintf() függvény használata megegyezik a printf() függvényével, viszont az eredményét egy karakterláncban adja vissza, amelyet aztán késıbbi használatra egy változóba helyezhetünk. Példa: egy lebegıpontos értéket két tizedesre kerekít, és az eredményt a $kerek változóban tárolja: $kerek = sprintf("%.2f", 23.34454); print "Még $kerek forintot költhetsz";
Szövegek indexelése Egy karakterláncot elképzelhetünk egy karakterekbıl álló tömbként is. Ennek megfelelıen a karakterláncok egyes karaktereihez ugyanúgy férhetünk hozzá, mint egy tömb elemeihez: $proba = "gazfickó"; print $proba[0]; // azt írja ki, hogy "g" print $proba[2]; // azt írja ki, hogy "z"
Egy karakterláncon belüli karakterek helyét 0-tól kezdve számozzuk.
Szöveg hosszának megállapítása az strlen() függvénnyel Az strlen() függvény segítségével megállapíthatjuk egy karakterlánc hosszát. A függvény bemenete egy karakterlánc, visszatérési értéke pedig egy egész szám, amely a függvénynek átadott változó karaktereinek száma. Példa: ellenırizzük, hogy egy tagnyilvántartó azonosító négykarakteres-e: if ( strlen( $tagazonosito ) == 4) { print "Köszönöm!"; } else { print "Az azonosítónak négykarakteresnek kell lennie"; }
Szövegrész megkeresése az strstr() függvénnyel Ezzel a függvénnyel azt állapíthatjuk meg, hogy egy karakterlánc megtalálható-e beágyazva egy másik karakterláncban. Az strstr() függvény két paramétert kap bemenetéül: a keresendı szöveget és azt a karakterláncot, amelyben keresnie kell. Ha a keresett karakterlánc nem található a szövegben, a visszatérési érték false (hamis) lesz, ellenkezı esetben a függvény a forrásláncból a keresett karakterlánccal kezdıdı részt adja vissza. Az strstr() megkülönbözteti a kis- és nagybetőket. Amennyiben a kis- és nagybetőket nem akarjuk megkülönböztetni, akkor használjuk az stristr() függvényt. Példa: megkülönböztetetten kezeljük azokat a tagazonosítókat, amelyekben megtalálható az AB karakterlánc: $tagazonosito = "pAB7"; if ( strstr( $tagazonosito, "AB" ) ) { print "Köszönöm. Ne feledje, hogy tagsága hamarosan lejár!"; } else { print "Köszönöm!"; }
Részlánc elhelyezkedésének meghatározása az strpos() függvénnyel Az strpos() függvény segítségével kideríthetjük, hogy egy szöveg megtalálható-e egy másik szöveg részeként, és ha igen, hol. Bemenetét két paraméter képezi: a forráslánc, amelyben, és a karakterlánc, amelyet keresünk. Ezek mellett létezik még egy harmadik, nem kötelezı paraméter, mégpedig azt az indexet megadó egész szám, amelytıl kezdve keresni szeretnénk. Ha a keresett karakterlánc nem található, a függvény a false (hamis) értéket adja vissza, ellenkezı esetben azt az egész számot, mely indextıl a keresett szöveg kezdıdik. Példa: ellenırizzük, hogy egy karakterlánc az mz karakterekkel kezdıdik-e: $tagazonosito = "mzOOxyz"; if ( strpos($tagazonosito, "mz") === 0 ) { print "Üdv, mz."; } Az strpos() megtalálja az mz karaktersort a lánc elején. Ez azt jelenti, hogy 0
értéket ad vissza, ami viszont a kifejezés kiértékelése során hamis értéket eredményezne. Hogy ezt elkerüljük, a PHP azonosság mőveleti jelét (===) alkalmazzuk, amely akkor ad vissza true (igaz) értéket, ha bal és jobb oldali tényezıje egyenlı értékő és azonos típusú is egyben.
Szövegrészlet kinyerése a substr() függvénnyel A substr() függvény egy kezdıindextıl kezdve meghatározott hosszúságú karakterláncot ad vissza. Bemenetét két paraméter képezi: az egyik a forráslánc, a másik a kezdıindex. A függvény az összes karaktert visszaadja a kezdıindextıl a forráslánc végéig. Harmadik, nem kötelezı paramétere egy egész szám, amely a visszaadandó szöveg hosszát jelenti. Ha ezt is megadjuk, a függvény csak a meghatározott mennyiségő karaktert adja vissza a kezdıindextıl számítva. $proba = "gazfickó"; print substr($proba,3); // azt írja ki, hogy "fickó" print substr($proba,3 , 4); // azt írja ki, hogy "fickó"
Ha kezdıindexként (második paraméter) negatív számot adunk meg, a függvény nem a karakterlánc elejétıl számolja a karaktereket, hanem a végétıl.
Program (substr.php): A következı kódrészlet meghatározott üzenetet ír ki azoknak, akiknek az e-mail címe .hu-val végzıdik. $cim = "felhasznalo@szolgaltato.hu"; if ( $cim = substr( $cim, -3 ) == ".hu" ) { print "Ne hagyja ki különleges ajánlatainkat!"; } else { print "Üdvözöljük üzletünkben!"; } ?>
Karakterlánc elemekre bontása az strtok() függvénnyel Az strtok() függvénnyel karakterláncok nyelvtani (szintaktikai) elemzését végezhetjük. A függvény elsı meghívásakor két paramétert vár, az elemzendı karakterláncot és egy határolójelet, amely alapján a karakterláncot felbontja. A határolójel tetszıleges számú karakterbıl állhat. A függvény elsı meghívásakor átmenetileg a memóriába helyezi a teljes forrásláncot, így a további meghívások alkalmával már csak a határolójelet kell megadnunk. Az strtok() minden meghívásakor a következı megtalált elemet adja vissza, a karakterlánc végére érkezést a false (hamis) érték visszaadásával jelzi. Program (strtok.php): Karakterlánc elemekre bontása az strtok() függvénnyel "; } $szo = strtok( $hatarolo ); } ?> Elıször a $hatarolo változóban tároljuk a határolójelet, majd meghívjuk az strtok() függvényt, és átadjuk neki az elemzendı URL-t, valamint a $hatarolo karakterláncot. Az elsı eredményt a $szo változóba helyezzük. A while ciklus feltételében azt ellenırizzük, hogy a $szo karakterlánc-e. Ha nem az, tudhatjuk, hogy
elértük az URL végét, és a feladat befejezıdött.
Szöveg tisztogatása a
trim()
és az ltrim(),rtrim() függvényekkel
Ha egy felhasználótól vagy fájlból kapunk információt, sohasem lehetünk biztosak benne, hogy az adat elıtt vagy után nincs egy vagy több fölösleges elválasztó karakter. A trim() függvény ezeket az elválasztó karaktereket (sortörés, tabulátorjel, szóköz stb.) hagyja el a karakterlánc elejérıl és végérıl. Bemenete a megtisztítandó szöveg, kimenete pedig a megtisztított.
$szoveg = " \t\t\teléggé levegıs ez a szöveg $szoveg = trim( $szoveg ); print $szoveg; // azt írja ki, hogy "eléggé levegıs ez a szöveg"
";
Elképzelhetı, hogy a szöveg elején levı elválasztó karaktereket meg szeretnénk tartani és csak a szöveg végérıl akarjuk eltávolítani azokat. Ekkor használjuk az rtrim() függvényt: $szoveg = "\t\t\teléggé levegıs ez a szöveg $szoveg = rtrim( $szoveg ); print $szoveg; // azt írja ki, hogy " eléggé levegıs ez a szöveg"
";
A PHP-ben lehetıségünk van az ltrim() függvény használatára is, amely az elválasztó karaktereket csak a karakterlánc elejérıl távolítja el. $szoveg = " \t\t\teléggé levegıs ez $szoveg = ltrim( $szoveg ); print "<pre>$szoveg"; // azt írja ki, hogy "eléggé levegıs
a
ez
szöveg
a
szöveg
";
"
Az összes részlánc lecserélése az str_replace() függvénnyel Az str_replace() függvény a keresett karakterláncrész összes elıfordulását lecseréli egy másik karakterláncra. Bemenetének három paramétere a lecserélendı karakterlánc, a csereszöveg és a forrásszöveg. A függvény kimenete az átalakított karakterlánc. Példa: egy karakterláncban a 2003 összes elıfordulását 2004-re cseréljük: $karakterlanc = "Az oldal szerzıi jog által védett. Copyright 2003"; $karakterlanc .= "Felsıoktatási tájékoztató 2003"; print str_replace("2003","2004",$karakterlanc);
Kis- és nagybetők közti váltás A PHP több függvénnyel is segítségünkre van a kis- és nagybetők cseréjében. Amikor felhasználók által megadott adatot írunk egy fájlba vagy adatbázisba, fontos lehet mindent csupa nagybetősre vagy csupa kisbetősre alakítani, hogy aztán könnyebben összehasonlíthatóak legyenek. Az strtoupper() függvény segítségével egy karakterláncot csupa nagybetősre alakíthatunk. A függvény egyetlen bemenete az átalakítandó szöveg, visszatérési értéke pedig a csupa nagybetős karakterlánc: $tagazonosito = "mzOOxyz"; $tagazonosito = strtoupper( $tagazonosito ); print "$tagazonosito
"; // azt írja ki, hogy "MZOOXYZ"
Karakterláncunk csupa kisbetőssé alakításához használjuk az strtolower() függvényt. Ennek egyetlen bemenete is az átalakítandó szöveg, és a csupa kisbetős karakterláncot adja vissza: $honlap_url = "WWW.bIbL.U-szeged.HU "; $honlap_url = strtolower( $honlap_url ); if ( !( strpos( $honlap_url, "http://" ) === 0 ) ) $honlap_url = "http://$honlap_url"; print $honlap_url; // azt írja ki, hogy "http://www.bibl.u-szeged.hu"
A PHP-nek van egy nagyszerő, „tüneti kezelést" biztosító függvénye, az ucwords().
A függvény egy karakterlánc minden szavának elsı betőjét teszi nagybetőssé. A következı programrészletben a felhasználó által beírt karakterláncban a szavak elsı betőjét nagybetőre cseréljük: $teljes_nev = "vitéz tinódi lantos Sebestyén"; $teljes_nev = ucwords( $teljes_nev ); print $teljes_nev; // azt írja ki, hogy "Vitéz Tinódi Lantos Sebestyén"
Megjegyzés: A magyar szövegekkel az ékezetes betők miatt alapbeállításban problémáink akadhatnak. A nemzeti beállítások testreszabására használható setlocale() függvényt kell alkalmaznunk, hogy a kívánt eredményt elérhessük.
Karakterláncok tömbbé alakítása az explode() függvénnyel A mókásan „robbantó"-nak nevezett függvény bizonyos mértékben hasonló az strtok() függvényhez. Ez a függvény azonban egy karakterláncot tömbbé bont fel, amit aztán tárolhatunk, rendezhetünk, vagy azt tehetünk vele, amit csak szeretnénk. Bemenetét két paraméter alkotja, az egyik a forráslánc, a másik pedig a határolójel, ami alapján fel szeretnénk bontani a forrásláncot. Ezek mellett egy harmadik paraméter is lehetséges, ami azt adja meg, hogy legfeljebb hány darabra bontható a szöveg. A határolójel több karakterbıl is állhat, ezek együtt fogják alkotni a határolójelet. (Ez eltér az strtok() függvény határolójelétıl, ahol a határolójelként bevitt többkarakteres karakterlánc minden karaktere egy-egy önálló határolójel lesz.) A következı kódrészlet egy dátumot bont fel részeire és az eredményt egy tömbben tárolja: $kezdet = "2000.12.01"; $datum_tomb = explode(".", $kezdet); // $datum_tomb[0] == "2000" // $datum_tomb[l] == "12" // $datum_tomb[2] == "00"
A DBA függvények használata A DBA a DataBase Abstraction layert (elvont adatbázisréteg) jelenti; a DBA függvények a fájl alapú adatbázisrendszerekhez nyújtanak közös felületet. Noha a DBA függvények nem biztosítják számunkra egy SQL adatbázis erejét, rugalmasak és könnyen használhatók.
Mi van az elvont réteg mögött? A DBA függvények sikeres használatához adatbázisrendszert telepítenünk kell.
legalább
egy
támogatott
Az elérhetı adatbázis-kezelıkrıl a dba_handlers() függvény szolgáltat információt. A függvény a kezelık nevének tömbjével tér vissza. Ha egy programban gyorsan ki szeretnénk íratni, melyek az elérhetı adatbázis-kezelık, adjuk hozzá az alábbi sort: var_dump( dba_handlers() );
A phpinfo() függvényt is használhatjuk, amely többek között a DBA-támogatásról és az elérhetı adatbázis-kezelıkrıl is adatokat szolgáltat. A dba_handlers() függvényt a PHP 4.3 vezette be. A példákban az általánosan használt GDBM rendszerre támaszkodunk.
Adatbázis megnyitása A DBM-szerő adatbázisokat a dba_open() függvénnyel nyithatjuk meg, amelynek három paramétert kell átadnunk: az adatbázisfájl elérési útját, a megnyitás módjára vonatkozó jelzıket tartalmazó karakterláncot, és a használni kívánt adatbázis-kezelıt azonosító karakterláncot. A függvény egy különleges DBA azonosítóval tér vissza, amelyet aztán a különbözı egyéb DBA függvényekkel az adatbázis elérésére és módosítására használhatunk fel. Mivel a dba_open() fájlokat nyit meg írásra vagy olvasásra, a PHP-nek joga kell, hogy legyen az adatbázist tartalmazó könyvtár elérésére. A dba_open() függvénynek az alább felsorolt jelzıkkel adhatjuk meg, milyen mőveleteket kívánunk végrehajtani az adatbázison. A dba_open() jelzıi Jelzı r w c n
Jelentés Az adatbázist csak olvasásra nyitja meg Az adatbázist írásra és olvasásra nyitja meg Létrehozza az adatbázist (ha létezik, akkor írásra és olvasásra nyitja meg) Létrehozza az adatbázist (ha már létezik ilyen nevő, törli az elızı változatot).
A következı kódrészlet megnyit egy adatbázist, ha pedig nem létezne a megadott néven, újat hoz létre: $dbh = dba_open( "./adat/termekek", "c", "gdbm" ) or die( "Nem lehet megnyitni az adatbázist." );
Vegyük észre, hogy ha nem sikerülne az adatbázis megnyitása, a program futását a die() függvénnyel fejezzük be. Ha befejeztük a munkát, zárjuk be az adatbázist a dba_close() függvénnyel. Ez azért szükséges, mert a PHP automatikusan zárolja a megnyitott adatbázist, hogy más folyamatok ne férhessenek hozzá a fájlhoz, mialatt a tartalmát olvassuk vagy írjuk. Ha az adatbázist nem zárjuk be, a várakozó folyamatok azután sem érhetik el az adatbázist, amikor már befejeztük a munkát. A dba_close() függvény paramétere egy érvényes DBA azonosító: dba_close ( $dbh );
Adatok felvétele az adatbázisba Új név-érték párt a dba_insert() függvénnyel vehetünk fel az adatbázisba. A függvénynek három paramétere van: egy kulcsnév, a tárolandó érték, és egy érvényes DBA azonosító (amelyet a dba_open() adott vissza). A visszatérési érték true, ha sikeres volt a mővelet, és falsé, ha valamilyen hiba következett be (például írási kísérlet egy csak olvasásra megnyitott adatbázisban, vagy egy azonos nevő elem felülírásának kísérlete). A dba_insert() már létezı elemet nem ír felül. Az alábbi példaprogramban létrehozzuk és megnyitjuk a termékek nevő adatbázist és feltöltjük adatokkal.
Program (dba-insert.php): Adatok felvétele adatbázisba
Termékek hozzáadása... Az értékek beszúrására a dba_insert() függvényeit használjuk. Az adat bázisba
illesztés során az összes érték karakterlánccá alakul, de az adatbázisból kiolva sás után ezeket az értékeket lebegıpontos számokként is kezelhetjük, amennyiben szükséges. (A lebegıpontos számokról a 4. fejezetben esett szó.) Vegyük észre, hogy nem csak egyszavas kulcsokat használhatunk. Ha ezek után meghívjuk a dba_insert() függvényt egy olyan kulcsértékkel, ami már létezik az adatbázisban, a függvény a falsé értéket adja vissza, figyelmeztetést küld, és nem módosítja az adatbázist. Ez megakadályozza a véletlen adatvesztést, de bizonyos körülmények között éppen arra lehet szükség, hogy egy meglévı adatot írjunk felül.
Adatok módosítása az adatbázisban Az adatbázisokban a bejegyzéseket a dba_replace() függvénnyel módosíthatjuk. A függvény paraméterei egy kulcs neve, az új érték, és egy érvényes DBA azonosító. A visszatérési érték true, ha minden rendben volt és falsé, ha valamilyen hiba lépett fel. Az alábbi példaprogramban az elızı program egy új változata látható, amely a kulcsokat korábbi meglétüktıl függetlenül felveszi az adatbázisba. Példa: Elemek felvétele vagy módosítása egy adatbázisban Termékek hozzáadása...
A program mőködésének módosításához mindössze át kell írnunk a dba_insert() függvényhívást dba_replace()-re.
Adatok kiolvasása adatbázisból Egyetlen elemet a dba_fetch() függvény segítségével olvashatunk ki. Ebben az esetben két paramétert kell átadnunk: az elérni kívánt kulcs nevét és egy létezı DBA azonosítót. A függvény visszatérési értéke egy karakterlánc, a kulcshoz tartozó érték lesz. Példa: "Tricorder" elem árát például a következı függvényhívással kérdezhetjük le: $ar = dba_fetch( "Tricorder", $dbh );
Ha "Tricorder" elem nem található az adatbázisban, a dba_fetch() false értékkel tér vissza. Az adatbázis elsı kulcsát a dba_firstkey() függvénnyel kérdezhetjük le. A függvény paramétere egy érvényes DBA azonosító, visszatérési értéke pedig a legelsı kulcs. Természetesen ez nem feltétlenül egyezik meg az elsıként beszúrt adattal, ugyanis a DBM-szerő adatbázis-kezelık gyakran saját rendezési eljárást használnak. Miután megkaptuk a legelsı kulcsot, a rákövetkezı elemeket a dba_nextkey() függvény ismételt hívásával kérdezhetjük le. A függvény paraméterként szintén egy érvényes DBA azonosítót vár, visszatérési értéke pedig a következı kulcs a sorban. Ha ezeket a függvényeket együtt használjuk a dba_fetch()-csel, az adatbázis teljes tartalmát kiolvashatjuk. Program (dba-fetch.php): Adatbázis összes rekordjának kiolvasása
A Hihetetlen Kütyük Boltja a következı termékeket kínálja Önnek:
Termék | Ár |
$kulcs | "; print " \$".sprintf( "%01.2f", $ertek )." | "; $kulcs = dba_nextkey( $dbh ); } dba_close( $dbh ); ?>
Elemek meglétének lekérdezése Mielıtt kiolvasnánk vagy módosítanánk egy elemet, hasznos lehet tudni, hogy létezik-e egyáltalán ilyen kulcsú elem az adatbázisban vagy sem. Erre a célra a dba_exists() függvény szolgál, amely paraméterként az ellenırizendı elem nevét várja, illetve egy érvényes DBA azonosítót. A visszatérési érték true, ha az elem létezik. if ( dba_exists( "Tricorder", $dbh ) ) print dba_fetch( "Tricorder", $dbh );
Elem törlése az adatbázisból Az adatbázisból elemeket a dba_delete() függvénnyel törölhetünk. A függvény bemenı paramétere a törlendı elem neve és egy érvényes DBA azonosító. Sikeres törlés esetén a visszatérési érték true, egyéb esetben false. dba_delete( "Tricorder", $dbh );
PostgreSQL Adatok felvitele egy adatbázisba adatok.php:
ment.php:
Adatok elérése egy adatbázisból lista.php:
Azonosító | Vezetéknév | Keresztnév | Email |
"; exit(); } while($sor = pg_fetch_assoc($result)) { printf ("%s | %s | %s | %s |
", $sor['oid'], $sor['veznev'], $sor['kernev'], $sor['email']); } ?>