A tanfolyam php php lekérdezések

Az előző tanulsága az alapokat az SQL nyelv és most megpróbáljuk alkalmazni ezt a tudást a gyakorlatban.

Minden kérést a PHP többnyire végezzük mysql_query () függvény. A függvény két paramétert: a query string, és a kapcsolat azonosítót után kapott hívás mysql_connect (). Elvileg a kapcsolat azonosítót lehet hagyni, akkor az utóbbinak kell használni Tailor kapcsolatot. Ez a megközelítés azonban tele van hibák összetett írást több egyidejű kapcsolatot több adatbázissal.

Ennek első példája, válassza ki az összes sort a táblázatban:

mysql_query () függvény pozvraschaet link a lekérdezés eredményét. Ha a kérés teljesítése egy hiba - a függvény false. ami után a szöveg a hiba lehet beszerezni hívja mysql_error () függvényt. és a hiba számát - mysql_errno () függvényt.

Egyetlen rekordot a lekérdezés eredményét kell használni az egyik a lekérés funkció (adatgyűjtő). Számos, és minden kényelmesebben érzi magát az ügyben.

$ Eredmény - változó után kapott mysql_query () hívás

$ Type paraméter leírja a méret adat érkezik. Meg lehet venni egyet a három érték:

MYSQL_NUM. A függvény egy rendezett tömb, amelyben egy elem nulla - nulla mező értéke, az első elem - az első mezőt, stb (Fields kell tekinteni „balról jobbra” abban a sorrendben, amelyben jelentettek be a kérelmet):

MYSQL_ASSOC. A függvény egy asszociatív tömböt, ahol az elem neve mező értékét ezen a területen.

MYSQL_BOTH. Ez egy tömböt ad vissza, amely egyidejűleg képes hozzáférni az adatokhoz, és szám és név szerint.

Fetch-minden funkció működik ugyanazt az algoritmust. Az első hívás funkció ellenőrzi a kérés vonalak, és ha az eredmény nem üres - visszaadja az első sorban, és lefordítja tekschey sor mutatót a következő rekordra. Az ezt követő hívás függvény a felhasználó számára, hogy az aktuális sor és továbblép a következő. Ha elérte az utolsó sort, és továbbítja semmi több - a függvény false.

Így a ciklus szétválogatja bejegyzések vygyadet az alábbiak szerint:

Néha meg kell mozgatni a rekordok, és nem csak „előre”, hanem a „vissza”, azaz abba az irányba az első aktuális sort. Ebben az esetben azt kell használni mysql_data_seek () függvény, amely lehetővé teszi, hogy a kapcsolót rögzíteni egy előre meghatározott számot.

Az érték a sor számát kell a 0-tól a sorok számát a lekérdezés eredménye. A sorok száma megtalálható a mysql_num_rows () függvény. Ezt szem előtt tartva, átírhatjuk az előző példában egy biztonságosabb formában:

Azonban mysql_num_rows () csak akkor alkalmazható, hogy az eredmények a SELECT. Amikor minden más parancsok (INSERT, UPDATE, és DELETE) függvény 0 (mert a szerver nem adott vissza egy sorban). Annak meghatározására, hány sort ki, megváltoztatni vagy eltávolítani, ha ez utóbbi kérelmet kell használni mysql_affected_rows () függvényt.

Például, a következő kód tudjuk, a táblázat tisztítási eredmények:

Ha meg kell tudni, hogy az érték az auto-növekmény a területen az újonnan beillesztett sor - használat függvényében mysql_insert_id ().

Mint korábban említettük - a teljes szöveg értékeket a lekérdezések vannak írva aposztrófok. De nagyon gyakran a helyzet áll elő, ahol meg kell adnia egy karakterláncot, amely már tartalmazza idézetek (például írja be a jelszót „my'1super'2password”). Ha megpróbálja, hogy ez az eredeti formájában, MySQL nem lesz képes feldolgozni a kérést, és kiadja a megfelelő hibaüzenet. Ennek elkerülése érdekében van szükség, hogy előzetesen készíteni a vonal írt. Ehhez használja mysql_real_escape_string () függvényt. Ez átalakítja az összes szolgáltatást olvashatatlan karakterek és a hozzájuk tartozó speciális karakterek, mint például a \ x00 \ n \ r, stb

Kötelező ellenőrzését az összes adat a táblázatban szereplő nem csak a jele „jó modor” között programozók, hanem sürgősen meg kell védeni a helyszínen a hacker és az adatlopások ellen.

Írásakor bonyolult lekérdezések legjobb kérjenek pre-teszt segítségével harmadik féltől származó programok, és csak utána add meg a kódot. Ez a megközelítés nagyban megkönnyíti a tesztelés egy lekérdezést, és a szkript egészére.

Kapcsolódó cikkek