Munka adatbázisok

Munka adatbázisok. Kezdeni.

Miért és hogyan kell használni az adatbázist. Alapvető funkciók.

Minden, amit tudok mondani, mint egy ajánlást, hogy egy adatbázis -, hogy az élet nélkülük - csak a halál! Adatbázis - exe-ray shnogo fény a sötétben értelmezni program adatai. Az adatbázis hoz egy kis fejfájás, de ennél sokkal több.

Példaként hozott a MySQL adatbázis szerver (Úgy vélem, hogy elsajátította, megtudhatja, és a másik nem sok nehézséget. Egy napon majd írok róluk, ha osvoyu :).

Először fogunk beszélni a PHP függvény dolgozni MySQL. Kezdjük.

1. Database Administration

Módszerek adatbázis adminisztráció érdekében kényelem:

  • phpMyAdmin (erősen ajánlott!)
  • Írni egy forgatókönyvet, hogy torzítja a bázis (lásd. Példa)
  • mysql.exe mysql csomagot
  • mysql_manager.exe (ott, mint ahogy ez lehetséges, csak a szélén a sámánizmus)

Különösen ajánlom az első módszer. Mivel nem kell tanulmányozni a kérelmet ALTER TABLE, oszlop hozzáadása, stb Nem tudom, hogy még őket. Sőt, hogy „az ilyen kérdéseket, nagykövet elvtárs, a kondachka nem megoldott” - amikor szükség van, hogy automatikusan megváltoztatja az adatbázis struktúrát vagy asztalra? Néhány szó a második módszer. Ez úgymond egy bypass technika, én használtam, nem tudnánk a phpMyAdmin és közüzemi mysqldump. A forgatókönyvet írta a csapat, eltávolítjuk a bázis és hozza létre újra. Miután ez segített, de általában ez még egyszer mondom, bypass technológia „backup”.

A jövőre nézve: ha több használó oldalak az adatbázisba, legalábbis, hozzon létre adatbázist az otthoni szerver. Ez megkönnyíti a munkát a szerver és megszünteti a lehetőségét zavart táblázatokat. Általánosságban, a szabályok az adatbázis azonos, és a helyszínen -, hogy egy külön könyvtárat a többi.

2. Egy vegyület az adatbázis szerver

által végzett mysql_connect funkció: $ connect = mysql_connect (<хост>, <логин>, <пароль>); Alapértelmezésben mysql-server a felhasználói tábla root felhasználó, amely csak akkor lehet hozzáférni a localhost-is, hogy ugyanazon a számítógépen, ahol van egy mysql szerver. FIGYELEM! „Miután a hozzáférést a localhost-as” azt jelenti, hogy a hozzáférés a PHP script, és akkor hozzáférhet bármely más számítógépről.

Mi történik, ha hívjuk mysql_connect funkció? Mivel az elején a végrehajtását a script, php kiosztja a memóriát a tájékoztatás, és a változók. A tájékoztatás a futó szkript tárolja, beleértve az információs és adatbázis-kapcsolatok. A változó $ connect - nagyjából egy mutatót arra a helyre, ahol az információ tárolódik. Részben ez pontosan ugyanaz, mint a többiek - ha használja a funkciót, meg kell, hogy állapítsa meg, hogy a globális változók utalnak rá.

Miért is használja a változó? Ez az eset áll fenn, ha a munkát meg kell használni több adatbázis szerverek (vagy például, hogy nagyobb biztonságot használ különböző bejelentkezési, ami lehet különböző jogosultságokkal). Ezekben az esetekben minden kérés szüksége bizonyossággal, hogy mi, hogy úgy mondjam, van egy csatorna parancsot. De ha csak egyetlen kapcsolat, meghatározhatja annak paramétereit, lekérdezési funkciója (róluk - lásd alább) nem kell -? Php az első (és ebben az esetben csak) létrehozott kapcsolatot, és azt használja.

3. A kérelem-mintavétel és feldolgozás eredményei

A mechanizmus a funkció adatbázis lekérdezi ugyanazt, mint az a funkciója a kapcsolat: funkció kérés paraméterei továbbított és (ha szükséges) a vegyület és az eredmény változóban tároljuk:

$ Eredmény = mysql_db_query (string adatbázis, karakterlánc lekérdezés [vegyületek változó]);

$ Eredmény = mysql_query (string lekérdezés [vegyületek változó]);

FIGYELEM! Ahhoz, hogy a mysql_query függvény, amelyben az adatbázis nincs megadva, akkor először válassza ki az adatbázis:

mysql_select_db (string adatbázis);

Most már van egy változó $ result. Ez egy mutató a lekérdezés eredményének. Van egy bizonyos sorok számát a táblázatban. Hogy ezeket a sorokat keresztül lehetséges funkciót mysql_fetch_row és mysql_fetch_array:


echo "


while ($ row = mysql_fetch_array ($ eredmeny))
echo "„
echo "
"$ Sor [" field1 "],""$ Sor [" field2 "],"

mysql_fetch_array függvény termel a megadott változó (ebben az esetben a $ sor) tömbindexek amely - mezőnevek (és ha írásban kéri, a mezők listája table.field, a tömb index mező). mysql_fetch_row termel olyan tömb, amelynek indexe - a száma, 0-val kezdődő.

Mi a szerepe a jobb kihasználása? Ha azt kéri a csillaggal jelölt azaz minden területen a táblázatban, és a kimeneti mezőket egy bizonyos posledovatelnosi (ha például egy asztal húzott sapkát), akkor jobb használni mysql_fetch_array. Ha azt kéri, egy két- három területen, hogy megtudjuk, azok sorrendjét, akkor ezt mysql_fetch_row - ez csökkenti a méretét a program kódját.

4. Kérelem-akció

Ez a parancs DELETE és UPDATE. Az ilyen kérelmeket - a „jogok” ugyanaz, mint a SELECT, így a szerver küld parancsokat előfordul ugyanúgy - mysql_query (mysql_db_query). De ebben az esetben a függvény nem ad vissza eredményt:

$ Eredmeny = mysql_query ( "SELECT * FROM sometable");
de
mysql_query ( "DELETE FROM sometable ahol id =.");

Ennek megfelelően, ha a lekérdezés végrehajtásához, hozd és beírjuk az eredményt a változó adatokat nem tároljuk sehol.

5. kéri hibakezelés

Az utolsó hibaüzenet lehet átjutni mysql_error funkció:

echo "Egy adatbázis hiba MySQL írja:" mysql_error ();

Ha a függvény eredménye van írva egy változó, akkor nézd meg:

$ Eredmeny = mysql_query ($ kérésre);
if (! $ eredmeny)
echo "Egy adatbázis hiba MySQL írja:" mysql_error ();
else echo "


while ($ row = mysql_fetch_array ($ eredmeny))
echo "„
echo "
"$ Sor [" field1 "],""$ Sor [" field2 "],"

>;

Ha a változó nem írni, hogy:


$ Request = "UPDATE (.)";
mysql_query ($ kérésre);
if (! mysql_error ())
echo „adat-frissítés sikeres volt!”;
else echo "Egy adatbázis hiba MySQL írja:" mysql_error ();

Ha a kérés automatikusan generált, akkor megjelenítheti és lekérdezés is (hasznos, hogy hozzon létre egy változót, amely tartalmazza azt, és használni, mint egy függvény paraméter).