A MySQL példákat kér a PHP-ben. SQL - kérések és feldolgozásuk a PHP használatával

A MySQL adatbázissal való együttműködés RNR-vel

Előadás. Elkészített prokhorov vs


1. A PNP-forgatókönyvek csatlakoztatása a MySQL táblákkal

Fontolja meg a leggyakrabban használt funkciókat, amelyek lehetővé teszik, hogy a MySQL adatbázisban dolgozzon az RNR-vel.

Amikor az RNR és a MySQL kölcsönhatásba lép, a program egy funkcióval kölcsönhatásba lép a DBMS-vel.

1.1 Kapcsolat a kiszolgálóhoz. Funkciómysql_connect.

Az adatbázisban való munka előtt telepítenie kell vele internetkapcsolat, valamint a felhasználói engedélyt. Ez a MySQL_Connect () funkció.

erőforrás mysql_connect (]])

Ez a funkció beállítja a hálózati kapcsolatot a $ Server host (alapértelmezett localhost, azaz jelenlegi számítógép), és visszaállítja a nyitott kapcsolat azonosítót. Minden további munkát végeznek ezzel az azonosítóval. Az azonosítót (leíró), mint argumentumot, egyedileg határozza meg a kiválasztott adatbázist. A regisztráció során a felhasználónév $ felhasználónév és a $ jelszó jelszó (alapértelmezés szerint a felhasználónév, amelyből az aktuális folyamat fut - a parancsfájlok hibakeresése: Gyökér és üres jelszó):

$ dbpasswd \u003d ""; //Jelszó

// figyelmeztetés megjelenítése

echo ("

");

Változók $ dblocation, $ dbuser és $ dbpasswd Store szerver neve, felhasználónév és jelszó.

1.2 A kapcsolatot a kiszolgálóhoz kapcsolja. Funkciómysql_close

A MySQL kiszolgálóhoz való csatlakozás automatikusan lezáródik a szkript végén, vagy a MySQL_CLOSE funkció hívásakor

bool mysql_close ()

Ez a funkció megszakítja a kapcsolatot a MySQL szerverrel, és a művelet sikeres végrehajtásával és hamis végrehajtásával valósul meg. A funkció adatbázis-csatlakozási leírót fogad el, mint a MySQL_Connect funkció által visszaadott érv.

$ dblocation \u003d "localhost"; // Szerver név

$ dbuser \u003d "root"; //Felhasználónév

$ dbpasswd \u003d ""; //Jelszó

// Adja meg a kapcsolatot az adatbázis-kiszolgálóhoz

// elnyomja a hiba kimeneti szimbólumot @ A funkció hívása előtt

$ dbcnx \u003d @ mysql_connect ($ dblocation, $ dbuser, $ dbpasswd);

ha (! $ dbcnx) // Ha a leíró 0, a kapcsolat nincs telepítve

// figyelmeztetés megjelenítése

echo ("

B. jelenleg Az adatbázis-kiszolgáló nem érhető el, így a helyes oldal kijelző nem lehetséges.");

ha (mysql_close ($ dbcnx)) // megszakítja a kapcsolatot

echo ("az adatbázishoz való csatlakozás megszűnik");

echo ("A kapcsolat befejezése");

1.3 Adatbázis létrehozása. Adatbázis-funkció létrehozása

Parancs létrehozása Az adatbázis létrehozása csak a szerver adminisztrátorra érhető el, és a legtöbb tárhelyre lehetetlen végrehajtani:

Adatbázisnév létrehozása

Új adatbázist hoz létre a névkötés nevével.

A funkcióval való munka példája:

@Mysql_query ("Adatbázis létrehozása $ dbname");

Javasoljuk, hogy az Apostrophes mindenhol ("SQL - Command") használata az SQL parancsokat tartalmazó vonalak korlátozásaként. Ez biztosíthatja, hogy a $ változó véletlenül ne legyen interpolálva (azaz nem lesz az értéke), és a szkriptek biztonsága növekedni fog.

Az Adatbázis létrehozása Adatbázis Crew parancs csak a Superuser számára érhető el, és lehetetlen egy egyszerű felhasználót elvégezni a legtöbb tárhelyen. Csak a szerver adminisztrátor számára elérhető.

Kísérletek esetén hozzon létre egy Testbase adatbázis létrehozásával SQL lekérdezést a parancssorból. Ehhez jelentkezzen be a MySQL rendszerbe, és írja be parancs sor Mysql:

mySQL\u003e Adatbázis-tesztbázis létrehozása;

Ezt követően tárcsázni kell:

mySQL\u003e Testbázis használata;

Az adatbázis létrejön:


1.4 Válassza az Adatbázis lehetőséget. Funkciómysql_select_db.

Mielőtt elküldte az első kérést a MySQL szerverre, meg kell adnia, hogy melyik adatbázist fogunk dolgozni. Ebből a célból a mysql_select_db funkció:

bool mysql_select_db (String $ Database_Name [, Resource $ link_identifier])

Értesíti a PHP-t, hogy további műveletekben $ LINK_IDEINIERIERIFER csatlakozás kerül felhasználásra $ Database_Name.

Ezzel a funkcióval egyenértékű az SQL lekérdezéshez használt felhasználási parancs meghívásával, azaz a mysql_select_db funkcióval kiválasztja az adatbázist további munkákhoz, és az összes későbbi SQL lekérdezés a kiválasztott adatbázisra vonatkozik. A függvény az adatbázis nevét veszi figyelembe az adatbázis nevét, mint argumentumok és az erőforrás-csatlakozási leíró. A funkció a sikeres működéshez és a FALSE-val való visszatéréshez igazodik - egyébként:

// Csatlakozási kód adatbázissal

ha (! @mysql_select_db ($ dbname, $ dbcnx))))

// figyelmeztetés megjelenítése

echo ("

B Most az adatbázis nem érhető el, így a helyes oldal kijelzője nem lehetséges.");

1.5 Feldolgozási hibák

Ha hibák fordulnak elő a MySQL-vel való munka során (például az utasítások nem kiegyensúlyozottak, vagy nincsenek elegendő paraméterek), akkor a hibaüzenet és annak száma az alábbiakban ismertetett két funkcióval érhető el.

Fontos, hogy gondosan és ezeket a funkciókat időben használni, mert különben a szkriptek hibakeresése bonyolultabbá válhat.

● Funkció:

int mysql_errno ()

visszaadja a legújabb rögzített hiba számát. Nem adhatja meg a $ Link_IDENTFIER kapcsolat azonosítót, ha csak egy kapcsolat során telepített a forgatókönyvet működési idő.

● Funkció:

string mysql_error ()

nem számot ad vissza, hanem a hibaüzenet szövegét tartalmazó karakterlánc. Kényelmes lehet alkalmazni hibakeresési célokra. Általában a mysql_error-t használják a tervezéssel vagy a Die (), például:

@Mysql_connect ("Localhost", "Felhasználó", "Jelszó")

vagy meghal ("Hiba az adatbázishoz való csatlakozáshoz:" .mysql_error ());

Az operátor @, amint a szokásos módon elnyomja a standard figyelmeztetés, amely hiba esetén előfordulhat.

BAN BEN legutóbbi verziók Az RNR figyelmeztetés a MySQL funkciókban nem lajstromozott alapértelmezés szerint.

1.6 Kapcsolat a MySQL-hez. Fájl (config.php.)

Általában a helyszínen több szkript van egyszerre, amelyet ugyanazon adatbázishoz kell hozzáférni.

A MySQL-hez való csatlakozásért felelős kódot ajánlott a külön fájlmajd csatlakoztassa a funkció használatával szükséges parancsfájlok.

Értesnek kell lennie az adatbázisok összekapcsolására, kiválasztására és létrehozására ugyanazon a fájlba (CONFIG.PHP), ahol a változókat a $ dblocation szerver nevével, a $ dbuser felhasználónévnek, a $ dbpasswdnak és a névnek nevezik A $ dbname adatbázis neve:

Config.php lista:

//config.php fájlkód, amely csatlakozási paramétereket tartalmaz kiszolgálóval és adatbázis kiválasztásával

// megjeleníti a hibaüzeneteket a böngészőhöz

$ dblocation \u003d "localhost"; // Szerver név

$ dbname \u003d "Beszúrás alapnév" // adatbázisnév: létrehozott vagy már létező

$ dbuser \u003d "root"; // adatbázis-felhasználónév

$ dbpasswd \u003d ""; //Jelszó

// Adja meg a kapcsolatot az adatbázis-kiszolgálóhoz

// elnyomja a hiba kimeneti szimbólumot @ A funkció hívása előtt

[E-mail védett]_Connect ($ dblocation, $ dbuser, $ dbpasswd);

ha (! $ dbcnx) // Ha a leíró 0, az adatbázis-kiszolgálóhoz való csatlakozás nincs telepítve

// figyelmeztetés megjelenítése

echo ("

Jelenleg az adatbázis-kiszolgáló nem áll rendelkezésre, így az oldal helyes megjelenítése lehetetlen.

");

// hozzon létre egy $ dbname adatbázist - csak egy superuser-t tehet

// Ha az adatbázis már létezik, nem kritikus hiba lesz

@Mysql_query ("Adatbázis létrehozása, ha nem létezik $ dbname");

// Csatlakozási kód egy adatbázissal: Az újonnan létrehozott adatbázis vagy egy meglévő adatbázis egyértelmű kiválasztását végezzük

// elnyomja a hiba kimeneti szimbólumot @ A funkció hívása előtt

ha ( [E-mail védett]_select_db ($ dbname, $ dbcnx)) // Ha a leíró 0, az adatbázis-kapcsolat nincs telepítve

// figyelmeztetés megjelenítése

echo ("

Jelenleg az adatbázis nem áll rendelkezésre, így az oldal helyes megjelenítése lehetetlen.

");

// kicsi segédfunkcióamely megjeleníti az üzenetet

// a hibáról az adatbázis-kérés hiba esetén

funkció PutError ($ üzenet)

echo ("");


2. Végezze el az adatbázis-lekérdezéseket

2.1 táblázat létrehozása. Funkció TÁBLÁZAT LÉTREHOZÁSA:

Táblázat-táblázat neve (NAMEPOLE TÍPUS, NAMEPOLE típus,)

Ez a parancs az adatbázis létrehoz egy új táblát oszlopok (mezők) által meghatározott saját nevét (neveit), valamint az előírt típusú. A táblázat létrehozása után lehetőség nyílik a parancsban felsorolt \u200b\u200bmezőkből álló rekordok hozzáadására.

Test_11.php felsorolása. Olyan program, amely új táblázatot hoz létre az adatbázisban:

tartalmazza a "config.php"; // Csatlakozás a kiszolgálóhoz és az adatbázis kiválasztásához

mysql_query ("Az asztal létrehozása, ha nem létezik az emberek

id int auto_increment primer kulcs,

vagy meghal ("mysql hiba:" .mysql_error ());


Ez a forgatókönyv új emberek asztalt hoz létre két mezővel. Az első mezőnek int típusú (egészének) és névazonosítója van. Másodszor típusú szöveg (szöveges karakterlánc) és név neve.

Ha a táblázat létezik, a tervezés vagy a dicséret () fog működni.

Opcionális kifejezés, ha nem haladja meg, ha megadja, mondja meg a MySQL szerver, hogy ne hozzon létre hibaüzenetet, ha a megadott névvel rendelkező táblázat már létezik az adatbázisban.

Emlékezz azokra az időkre, amikor nem tudtam, mi mysql És gyakran keresett ilyen cikkeket az interneten. De valamilyen oknál fogva ritkán találtak. Most úgy döntöttem, hogy ilyen hasznos cikkeket állítok ki mysql és pHP. Még egy lett. Megpróbálok mindent hozzáférhető nyelven írni.

első lépések a MySQL és PHP-vel

Tehát egy kezdetre szükségünk van egy helyi kiszolgálóra, hogy elinduljon pHP parancsfájlok és csatlakozzon az adatbázishoz (ezután felhívom az adatbázist, ami "adatbázis"). Ha még mindig nincs helyi kiszolgáló, akkor először olvassa el a telepítést és a konfigurációt helyi kiszolgáló., majd kezdje el az adatbázis tanulmányozását mysql és a DBMS (adatbázis-kezelőeszköz).

Ha már rendelkezik ezzel a szerverrel, így teszünk. Kezdjük, szeretném bemutatni a DBMS-hez Phpmyadmin.Lehetővé teszi, hogy kezelje (hozzáadja, törölje, módosítja) rekordokat az adatbázisban.

Ez a főoldal Dbms phpmyadmin.. Innen létrehozhatja az adatbázisát, és tárolja a szükséges bejegyzéseket. A webhelyek létrehozásakor nagyon kényelmes, mivel az információ strukturálva van, és nagyon gyorsan bejegyezhet az adatbázisból.

Mint már említettük, a cikk első része, ismerőse mysql és phpmyadmin.. Azt hiszem, most érted, hogy mi a mysql, és elkezdhetjük a phpmyadmin funkcionalitás felfedezését. A munka megkezdéséhez meg kell teremteni az adatbázist (adatbázis). Ő lesz saját nevét, amelyre később fogunk keresni.

Itt van az adatbázis szerkezetének általános szerkezete:

Az adatbázis létrehozásához írja be a beviteli mezőbe az "Új adatbázis létrehozása" vonal alatt (a phpmyadmin főoldalán) bármely nevet (nem cirill!) A jövőben. Létrehozok egy "baza" nevű adatbázist. Most, a BD struktúra diagramját követve, asztalra van szükségünk. Ehhez az alap létrehozása után ilyen ablak lesz:

Itt létrehozok egy asztalt a felhasználók nevével és 3 mezővel. További phpmyadmin megkéri, hogy állítsa be az egyes mezők szerkezetét:

Itt a "Field" oszlopban meg kell adnia a nevet, a "Type" Adja meg a tárolt adatok típusát (int a szám, a varchar - vonal vagy a kicsi (!) Ezenkívül megadja az "Auto_increalment" nevű "ID" paraméter "ID" paraméter, ami azt jelenti, hogy minden adatot beilleszt, és beállítja az "elsődleges kulcs" paraméterét (kerekítve), ez azt jelenti, hogy az első oszlopban lehet határozottan azonosítja a mezőt.

"Határozottan azonosítja a mezőt", még akkor is, ha a név és a vezetéknév ugyanaz lesz, az azonosító oszlopnak különböző értékei lesznek (minden alkalommal automatikusan növekednek).

Most kattintson a "Mentés" gombra. Így létrehoztunk egy felhasználói tábla, ahol tudunk tárolni a családi és utónevét (az ID nem kell beépíteni, MySQL mindent meg fog tenni nekünk), az adatbázis-felhasználók. A rekordok tárolására szolgáló táblázatot hoztuk létre. És hogyan kell behelyezni őket ott? Alább olvasható

Válassza ki a "Paste" menüt, és írja be a kívánt értékeket a szükséges mezőkhöz. Most, hogyan kell törölni vagy módosítani az értékeket a MySQL adatbázis a phpMyAdmin adatbázis ... törléséhez, csak megy az Áttekintés menüt, és nyomja meg a Vörös Keresztfej szemben a felvétel:

És szerkesztéshez kattintson a ceruzára, és cserélje ki a szükséges mezőket. Nos, ezen lecke befejeződött. Most kezelheti a MySQL adatbázist a phpmyadmin használatával. A következő leckében megtanítom, hogy tárolja, fogadja, törölje és frissítse az adatokat az adatbázisban pHP használatával.. Nagyon kényelmes és praktikus.

A PHP MySQL adatbázisával dolgozik

Tehát először meg kell tanulnod, hogy csatlakozzon a már meghatóan létrehozott adatbázishoz. Ehhez ezt a kódot használják:

A fenti kódban a Localhost kiszolgálóhoz csatlakoztam a bejelentkezéssel gyökér amely nem igényel jelszót (ezért nem adom meg). Az adatbázishoz való csatlakozás után elvégezhetjük az összes olyan műveletet, amelyet phpmyadminban végeztünk. Vagyis a különböző információk beszúrása, törlése, módosítása és megszerzése. Most, a pontokon:

Bejegyzések beillesztése az SQL adatbázisban a PHP-en

$ Lekérdezés \u003d "Helyezze be a" táblázatba "(" pont a mező ",` Adja meg a mező ") értékeit (" bármilyen érték "," bármilyen érték ")"; $ eredmény \u003d mysql_query ($ lekérdezés); Ha ($ eredmény \u003d\u003d igaz) (Echo "sikeres!";) más (visszhang "hiba!
".mysql_error ();)

Ez az, hogy a betétet a beillesztés függvénye végzi. Ha minden sikeresen elment, a MySQL visszaadja az igazi vagy más módon - hamis eredményt.

A mezők legalább mennyit, a legfontosabb az, hogy mindegyikük az adatbázisban létezett. Ez például van egy asztal, amelyben vannak olyan mezők "név", "vezetéknév" és "város". A beillesztéséhez ilyen kódot fogunk használni:

$ Lekérdezés \u003d "Helyezze be a" felhasználók "(` name`, `surnate``,` city`) értékeit ("Ruslan", "Huzin", "kokshetau"). $ eredmény \u003d mysql_query ($ lekérdezés); Ha ($ eredmény \u003d\u003d igaz) (Echo "sikeres!";) más (visszhang "hiba!
".mysql_error ();)

A bejegyzések eltávolítása az SQL adatbázisból a PHP-re

A törlést a Törlés funkció végzi. Ehhez valami ilyesmi lesz:

$ Lekérdezés \u003d "Törölje a" felhasználóktól ", ahol" név "\u003d" Ruslan "; $ eredmény \u003d mysql_query ($ lekérdezés); Ha ($ eredmény \u003d\u003d igaz) (Echo "sikeres!";) más (visszhang "hiba!
".mysql_error ();)

Vagyis, mi törölje az összes sort a USSS asztal (jó, vagy egy), ahol a név oszlop egyenlő a Ruslan értéket.

Az értékek módosítása a MySQL adatbázisban a PHP-en

A már meglévő rekordok módosításait is módosíthatjuk. Például ki kell cserélnünk a névoszlop értékét egy sorban, ahol a vezetéknév oszlop huzin. Ehhez végezze el az ilyen kódot:

$ Query \u003d "Update" felhasználók "beállított` name` \u003d "myname", ahol "surnate` \u003d" huzin "; $ eredmény \u003d mysql_query ($ lekérdezés); Ha ($ eredmény \u003d\u003d igaz) (Echo "sikeres!";) más (visszhang "hiba!
".mysql_error ();)

Értékek beszerzése az adatbázisból

Most a legérdekesebb. Miután rögzítettük valamit, akkor vissza kell térned? Például a felhasználók táblázatból kell eljutnunk az összes vonalat, ahol a névoszlop egyenlő a Ruslannak. Ehhez egy kicsit más kódra van szükségünk, mint az első példákban. Itt van valójában:

$ Query \u003d "Válassza ki a * -ot, ahonnan" név "\u003d" Ruslan ""; $ eredmény \u003d mysql_query ($ lekérdezés); Ha ($ eredmény \u003d\u003d igaz) (Echo "sikeres!";) más (visszhang "hiba!
".mysql_error ();) $ d adatok \u003d mysql_fetch_array ($ eredmény); / * Most az asztal adatai a * /

Itt szükségünk volt egy másik funkcióra, hogy rögzítse a kiválasztott adatokat a PHP változóba (tömb). A kiválasztott karakterlánchoz lépjen kapcsolatba, így írunk:

$ Adatok ["oszlopnév"]

vagyis, hogy megkapja a vezetéknevét a kiválasztott vonalból (ahol a név Ruslan volt), meg kell írnunk a következtetésre:

echo $ adatok ["vezetéknév"];

És amikor a táblázatból mintavételezés, írtam a * -ot, ez a csillag azt jelenti, hogy ki kell választania az összes oszlopot a karakterláncból. Ha például szükségünk van arra, válasszon csak a vezetéknév, írja meg a "vezetéknév" lehetőséget. És a mintavételhez egyszerre több vonalat a táblázatból, a ciklusra is szükség lesz a kimenetükre is. Ez például, ha például a Ruslan oszlopú sorok többek lesznek. Itt van a kód:

$ Query \u003d "Válassza ki a * -ot, ahonnan" név "\u003d" Ruslan ""; $ eredmény \u003d mysql_query ($ lekérdezés); míg ($ data \u003d mysql_fetch_array ($ eredmény)) (Echo $ adatok ["Név"]. "
"$ Adatok [" Vezetéknév "]."


"; }

Most minden olyan vonal, ahonnan a név oszlopa megegyezik a Ruslan értékével.

Itt találkozott a fő vezérlési funkciókkal mySQL adatbázis közvetlenül pHP parancsfájl.

Ebben a cikkben megtanuljuk kérés küldése az adatbázisba a PHP segítségével. Ez a cikk nagyon fontos, és meg kell érteni. Azonban nyugodom meg - az anyag nagyon egyszerű, így nincs nehézség.

Mielőtt továbblépné a cikk témájához, előzetesen figyelmeztetek, hogy nem fogok részletesen szétszerelni sQL nyelv. Minden szükséges információ szétszerelve a kategóriában, és itt csak vagyunk a PHP segítségével a MySQL-vel dolgozunk.

Most menj K. adatbázis-kérések küldése a PHP-hez:


}
$ MySQLI-\u003e lekérdezés ("Helyezze be a rejtélybe (név, e-mail) értékek (" myname ", [E-mail védett]")");
$ mysqli-\u003e közel ();
?>

Ebben a példában csatlakoztattuk az adatbázishoz, ellenőriztük a kapcsolat sikerét, kérést küldött a módszerrel lekérdezés ()Majd lezárta a kapcsolatot. Amint láthatod, minden nagyon egyszerű. Küldjön semmit SQL lekérdezések csak egy módszer - lekérdezés ()Ezért ebben az esetben minden őrülten egyszerű.

Most kissé bonyolítja a feladatot. Nézzük meg azokat a kéréseket, amelyek visszatérnek eredmény_set. - Eredmény. A legnépszerűbb kérés renderelt eredmény_set. - Ez egy adatminta az asztalról. A következő példában adunk adatmintát, majd összefoglaljuk az eredményt:

$ mysqli \u003d @new mysqli ("localhost", "admin", "Pass", "MyBase");
ha (mysqli_connect_errno ()) ()) (
Echo "kapcsolat nem lehetséges:" .mysqli_connect_error ();
}
$ result_set \u003d $ mysqli-\u003e
Míg ($ sor \u003d $ resert_set-\u003e fetch_assoc ()) (
Print_r ($ sor);
Echo "
";
}
$ resert_set-\u003e Close ();
$ mysqli-\u003e közel ();
?>

Kezdjük, megmagyarázom egy kicsit, ami eredmény_set.. Eredmény_set. - Ez egy táblázat eredménye. Ez a táblázat tartalmaz egy rekordot (asztali vonalak). És az összes rekord kimenete, meg kell mozgatnia az asztal minden sorát, és visszavonja. És most megmagyarázom egy példát: Miután elküldte a kérést, létrejöttünk eredmény_set.. Ezután egy változót rendelünk a ciklusban sor A következő sor értéke, azaz egydimenziós tömb, amely visszaadja a módszert fetch_assoc (). Amikor az összes vonal elfogy, a módszer fetch_assoc () Visszatérés hamisés felszabadulnak a ciklusból. Belső ciklusok míg Egyszerűen hibakeresést használunk egy tömböt. print_r ()Bár minden bizonnyal lehetőség lenne visszavonni az egyes.De most nem szükséges.

Röviden összefoglaljuk, hogyan kell dolgoznunk eredmény_set.:

  1. Kap eredmény_set.A megfelelő kérés elküldésével az adatbázisba.
  2. Az egyes iterációban lévő ciklusban a következő sor (felvétel) hozzárendeléséhez eredmény_set. Módszer használata fetch_assoc () Valamilyen változó sor. Ezután ezzel a változóval dolgozhat, mint egydimenziós asszociatív tömb, amelyben a kulcsok a táblázat mezők neve, és az értékek megfelelnek az aktuális bejegyzésnek.
  3. Ügyeljen rá eredmény_set. Módszer bezárás ()Az erőforrások fedezésére.

Hogyan észlelte a módszert fetch_assoc () A következő rekordot mindig visszaadja. Ez az első 1., majd a 2., majd a 3. és így tovább. Ha van egy jó programozási tapasztalata, akkor azonnal kitalálod, hogy ez a belső mutatónak köszönhető, amelyet természetesen költözhet. Hol használják? Például használható, ha dolgozni kell eredmény_set. nem 1 , de 2 Több mint egyszer. Ugyanazt a kérelmet, egyszerűen mozgathatja a mutatót az elejére. És akkor újra részt vehetsz eredmény_set. A Fetch_Assoc () módszer használata.

A mutató helyzetének megváltoztatásához van egy módszer data_seek ()amely egész számot vesz 0 korábban " records száma - 1", illetve a mutató a megfelelő felvételi paraméterre emelkedik:

$ mysqli \u003d @new mysqli ("localhost", "admin", "Pass", "MyBase");
ha (mysqli_connect_errno ()) ()) (
Echo "kapcsolat nem lehetséges:" .mysqli_connect_error ();
}
$ result_set \u003d $ mysqli-\u003e lekérdezés ("Válassza ki a * from mytable-t");
$ result_set-\u003e NUM_ROWS;
Míg ($ sor \u003d $ resert_set-\u003e fetch_assoc ()) (
Print_r ($ sor);
Echo "
";
}
$ Result_set-\u003e DATA_SEEK (0);
Míg ($ sor \u003d $ resert_set-\u003e fetch_assoc ()) (
Print_r ($ sor);
Echo "
";
}
$ resert_set-\u003e Close ();
$ mysqli-\u003e közel ();
?>

Ebben a példában hoztuk records száma az eredményben Az ingatlan használata num_rows. És megismerkedett a módszerrel is data_seek (). Vagyis az egész eredményt átmentünk, majd visszatértünk a mutatóval 0 Y. Rekord és ismét elment az eredményre.

Ebben a cikkben megismételtük az adatbázishoz való kapcsolatot és a kapcsolatot zárva. És tanult is hogyan küldhetünk kéréseket az adatbázisba a PHP segítségével. Tanult, hogyan kaphatod meg az eredményt_set. És hogyan kell dolgozni vele. Ez mindössze annyit kell tudnod, hogy sikeres legyen dolgozzon a mysql-vel a PHP-ben.

A MySQL adatbázis maximális visszatéréséhez fontos, hogy megértsük, hogyan kell csatlakozni a felhasználói programból a PHP-hez a MySQL adatbázisba.

Ez a kézikönyv a következő három módszert írja le, a PHP-re vonatkozó példaköri program megfelelő programjával, amely megmagyarázza, hogyan kell csatlakozni a PHP-hez az adatbázishoz.

  • Kapcsolat a MySQLI kiterjesztéssel (ajánlott)
  • Kapcsolat a PDO-val (ajánlott)
  • Kapcsolat hagyományos funkciókkal elavult mysql_ (alapjel)

Ehhez telepítse a PHP-MySQL csomagot.

A Redhat eloszlás alapján, beleértve a yumot, a PHP-MySQL telepítéséhez, az alábbiak szerint.

Yum telepítése php-mysql

A rendszertől függően a következő függőségeket telepítjük vagy frissítjük:

  • php-cli
  • php-közös
  • php-pdo
  • php-pgsql

Miután minden telepítve van, a phpinfo oldal megjeleníti a MySQL modult, az alábbiak szerint:

Az alábbi példákhoz csatlakozunk a már létező MySQL adatbázishoz. Ha új a MySQL-hez, ez egy jó hely a kezdethez :.

Megjegyzés: Minden, ami itt leírt is működik MariaDB, mivel úgy működik a MySQL.

1. Csatlakozás a PHP-hez a MySQLI kiterjesztés használatával

A mysqli azt jelenti, hogy a mysql javult.

Kérjük, vegye figyelembe, hogy a legtöbb disztribúció (például: CENTOS), a PHP-MySQLI már része a PHP-MySQL csomagnak. Így nem kell keresnie és telepítenie a PHP-MySQLI csomagot. Mindössze annyit kell tennie, hogy telepítse a PHP-MySQL csomagot, hogy megkapja a MySQLI kiterjesztését a rendszeren.

Hozza létre a következő mysqli.php fájlt a DocumentRoot Vapache-ban:

connect_error) (Die ("hiba: Nem lehet csatlakozni:" $ Conn-\u003e Connect_Error);) Echo "Csatlakozás egy adatbázishoz.
"$ Eredmény \u003d $ Conn-\u003e lekérdezés (" Név kiválasztása a munkavállalóból "); echo" sorok száma: $ eredmény -\u003e num_rows "; $ eredmény-\u003e közel (); $ conn-\u003e close ();

A fentiekben:

  • MySQLI - Ez a funkció új kapcsolatot kezdeményez a MySQLI kiterjesztés használatával. Ez a funkció négy argumentumot vesz igénybe:
    1. Host név, ahol a MySQL adatbázis működik
    2. Felhasználónév a MySQL kapcsolathoz
    3. MySQL felhasználói jelszó
    4. MySQL adatbázis a kapcsolathoz.
  • Lekérdezés funkció - Használja a MySQL kérés megadásához. Ebben a példában a Név oszlopot választjuk az alkalmazottak adatbázisából.
  • Végül megjelenítjük a NUM_ROWS változó használatával kiválasztott sorok számát. Zárjuk be a kapcsolatot is a fentiek szerint.

Csatlakozzon az adatbázishoz. A húrok száma: 4

Megjegyzés: Ha próbál csatlakozni egy távoli MySQL adatbázis, akkor meg tudod csinálni, hogy elkerülje a hiba a kapcsolatot a fogadó: hogyan teszi lehetővé a MySQL kliens kapcsolódni a MySQL távoli szerverre.

2. Csatlakozás a PHP használatával a MySQL-hez a PDO kiterjesztéssel

A PDO PHP adatobjektumokat jelent.

A PDO_MYSQL végrehajtja a PHR által megadott PDO interfészt, hogy csatlakozzon a programhoz a MySQL adatbázisba.

A legtöbb Linux disztribúcióban (például a Centos és a Redhat) a PHP-PDO csomag már szerepel a PHP-MySQL csomagban. Így nem kell keresnie és telepítenie a PHP-PDO csomagot. Mindössze annyit kell tennie, hogy telepítse a PHP-MySQL csomagot, hogy megkapja a PDO_MYSQL PHP futó kiterjesztését a rendszeren.

Hozza létre a következő mysql-pdo.php fájlt az Apache DocumentRoot-ban:

setTtribute (PDO :: attr_errmode, pdo :: errmode_exception); Echo "Csatlakozás az adatbázishoz.
"; $ sql \u003d" Válassza ki a nevét a munkavállaló "; nyomtatás" alkalmazott neve:
"; Foreach ($ conn-\u003e lekérdezés ($ sql) $ Sor) (Nyomtatás $ sor [" Név "]."
";) $ Conn \u003d null;) fogás (echo" hiba: Nem lehet csatlakozni: ". $ Err-\u003e getmessage ();)?\u003e

A fentiekben:

  • az új OEM - létrehoz egy új OEM-objektumot, amely a következő három érvet végez:
    1. MySQL kapcsolat húr: lesz a formátumban: "MySQL: host \u003d $ hostname; dbname \u003d $ adatbázisnévre". A fenti példában az adatbázis helyi gazdagépen működik, és csatlakozunk az Andreyex adatbázishoz.
    2. Felhasználónév a MySQL-hez való csatlakozáshoz.
    3. Jelszó a MySQL felhasználó számára.
  • $ SQL változó - SQL lekérdezés létrehozása, amelyet szeretne végrehajtani. Ebben a példában kiválasztjuk a Név oszlopot a munkavállalói táblázatból.
  • lekérdezés ($ SQL) - Itt végezünk SQL kérést, amelyet éppen most hoztunk létre.
  • foreach - Itt futunk a fenti parancsokon, és menteni őket egy változó sorban $, majd megmutatjuk őket a nyomtatási parancs segítségével.
  • A MySQL PDO-ban a kapcsolat bezárásához egyszerűen állítsa vissza a $ Conn változó értékét.

Ha hívja a MySQLI.php-t a böngészőből, akkor a következő következtetést fogja látni, amely azt jelzi, hogy a PHP képes volt csatlakozni a MySQL adatbázishoz, és ad adatmintát.

Csatlakozzon az adatbázishoz. Tisztviselő neve: SITESLAN MARIA Oleg

3. Csatlakozás a PHP-hez a MySQL_ (alapjel) funkciói segítségével

Ezt a módszert csak akkor használja, ha a régebbi PHP verziót használja, és valamilyen okból nem tudja frissíteni az új verziót.

Ez egy elavult PHP 5.5 kiterjesztés. De a PHP 7.0 verzióval kezdődően nem fog működni, mivel eltávolították.

A PHP 5.5 verziókkal kezdődik, amikor ezeket a funkciókat használja, e_dePrecated hibát generálnak.

Hozza létre a következő mysql-legacy.php fájlt az Apache DocumentRoot alatt:

"$ eredmény \u003d mysql_query); $ sor \u003d mysql_fetch_row ($ eredmény); echo" alkalmazott 1: ", $ Sor"
\\ n "; mysql_close ($ con);?\u003e

A fentiekben:

  • Mysql_connect funkció három paramétert fogad: 1) host neve, ahol a MySQL adatbázis működik, 2) Felhasználónév való kapcsolódás MySQL, 3) jelszó MySQL. Itt csatlakozik a MySQL adatbázishoz, amely a helyi kiszolgálón fut a root felhasználónévvel és jelszavával.
  • A MySQL_SELECT_DB funkció - A névből az alábbiak szerint választja ki az adatbázist, amelyhez csatlakozni szeretne. Ez megegyezik a "használat" paranccsal. Ebben a példában csatlakozunk az Andreyex adatbázishoz.
  • Funkció MySQL_QUERY - Használja a MySQL kérés megadásához. Ebben a példában a Név oszlopot választjuk az alkalmazottak adatbázisából.
  • mysql_fetch_row - Használja ezt a funkciót az SQL lekérdezésből, amelyet éppen létrehozott.
  • Végül zárja be a kapcsolatot a MySQL_Close parancs segítségével, amint azt a fentiek szerint.

Amikor a MySQL-LEGACY.PHP-t hívja a böngészőből, az alábbi következtetést fogja látni, amely azt jelzi, hogy a PHP képes volt csatlakozni a MySQL adatbázishoz, és ad adatmintát.

Csatlakozzon az adatbázishoz. Munkavállaló 1: Andreyex

PHP-vel ...

Kapcsolat létrehozása különböző módon:

1) Régi dedovsky kapcsolat a MySQL-hez:

$ Conn \u003d mysql_connect ($ db_hostname, $ db_username, $ db_password) vagy meghalva ("nincs kapcsolat a szerverrel");
mysql_select_db ($ db_database, $ Conn) vagy Die ("Nem sikerült csatlakozni az adatbázishoz");

Az alábbi változó magyarázata.

Ugyanakkor funkciókat használnak:

  • mysql_connect () - csatlakozni a szerverhez;
  • mysql_select_db () - az adatbázishoz való csatlakozáshoz;

Ugyanakkor folyamatosan ellenőrizzük a hiba jelenlétét ilyen módon: vagy Die ("hiba az igen"); - Olyan hibával fordítja vagy meghaljon - azonnal megtalálja a hibát.

config.php.

// Változók az adatbázishoz való csatlakozáshoz
$ Host \u003d "localhost"; / Házigazda
$ USERNAME \u003d "root"; // Jelszó az adatbázishoz való csatlakozáshoz
$ jelszó \u003d ""; // jelszó lopni az adatbázishoz - a helyi számítógépen üres érték lehet.
$ DATABASE_NAME \u003d "MY-DOLGI"; // bd név

// régi életmód az adatbázisban
Mysql_connect ($ host, $ felhasználónév, $ jelszó) vagy meghal ("Nem tudok csatlakozni a vegyület létrehozásához");

// Válassza ki az adatbázist. Ha a hiba megjelenik
mysql_select_db ($ adatbázis_neve) vagy meghal (mysql_error ());

index.php.

igény: "config.php";


$ Eredmény \u003d mysql_query ("Név kiválasztása, pénz a DOlG megrendeléséről a Desc Limit 5" -vel ") vagy Die (MySQL_Error ());



";


Míg ($ sor \u003d mysql_fetch_assoc ($ eredmény)) (
";
}


mysql_free_result ($ eredmény);

// zárja be a kapcsolatot
mysql_close ();

2) Progresszív eljárási stílus - Kapcsolat az adatbázishoz a MySQLI-vel:

Ez a módszer:

  1. kényelmes;
  2. 40-szer gyorsabban;
  3. javított biztonság;
  4. Új funkciók és funkciók vannak;

Példa Csatlakozás az adatbázishoz a PHP-n lévő minta a táblázatból

config.php.

// szociológia az adatbázissal
$ link \u003d mysqli_connect ("localhost", "Felhasználónév", "Jelszó", "Név-adatbázis"); // Itt adom be az adatokat közvetlenül: felhasználónév, jelszó és adatbázis neve, első mező általában localhost

// Csatlakozási hiba kimenet
Ha (! $ link) (
Echo "Hiba az adatbázishoz való csatlakozáshoz. Hibakód:". mysqli_connect_error ();
kijárat;
}

Megjegyzés - mindenhol a MySQLI, NEM MYSQL !!!

index.php.

igény: "config.php";

// végrehajtja a kérést. Ha a hiba megjelenik
Ha ($ eredmény \u003d mysqli_query.($ Link, "Válassza ki a nevet, a pénzt a DOLG megrendelésből a Money Desc Limit 5"))) (

Echo ", akinek le kell térnem:

";

// A lekérdezési eredmények kiválasztása
Míg ($ sor \u003d mysqli_fetch_assoc($ eredmény)) (
Echo $ sor ["Név"]. "Adóssággal." $ Sor ["pénz"]. - Rubles.
";
}

// a használt memória felszabadítása
mysqli_free_result($ eredmény);

// zárja be a kapcsolatot
mysqli_close($ Link.);
}

Amint láthatod, néhány pillanat megváltozott (dőlt betűkkel).

3) Objektumorientált módszer a MySQL adatbázishoz való csatlakozáshoz - módszerek és osztályok használata:

Hátrányok: nehezebb és kevésbé fogékony a hibákra.

Előnyök: Rövidség és kényelem a programozók tapasztalataival.

$ Conn \u003d új mysqli ($ db_hostname, $ db_username, $ db_password, $ db_database);
ha ($ conn-\u003e connect_errno) (
Meghal ($ conn-\u003e connect_error);
) Egyébként (echo "kapcsolat az adatbázissal sikeresen létrehozott";)

itt elvben minden intuitív:

  • $ db_hostname van házigazda (többnyire localhost),
  • $ db_database - bD név;
  • $ DB_USERNAME és $ DB_PASSWORD - Felhasználónév és jelszó, illetve!

Példa kapcsolatot az adatbázissal a PHP stílusú OOP-on egy minta az asztalról

config.php.

// szociológia az adatbázissal
$ mysqli \u003d új mysqli ("localhost", "felhasználónév", "jelszó", "Név-adatbázis"); // Itt adom be az adatokat közvetlenül: felhasználónév, jelszó és adatbázis neve, első mező általában localhost

// Csatlakozási hiba kimenet
ha ($ mysqli-\u003e connect_error) (
Meghal ("Hiba az adatbázishoz való csatlakozáshoz: (" $ mysqli-\u003e connect_errno. ")". Mysqli_connect_error);
}

Megjegyzés - mindenhol a MySQLI, NEM MYSQL !!! És ellentétben az előző módszerrel, a nyilak megjelennek "-\u003e", amely azt mutatja, hogy ez egy OOP stílus.

index.php.

igény: "config.php";

// végrehajtja a kérést. Ha a hiba megjelenik
Ha ($ eredmény \u003d $ mysqli-\u003e lekérdezés.("Válassza ki a nevet, a pénzt a DOlG megrendelésből a Money Desc Limit 5"))) (

Echo ", akinek le kell térnem:

";

// A lekérdezési eredmények kiválasztása
Míg ($ sor \u003d $ eredmény) fetch_assoc.()) {
Echo $ sor ["Név"]. "Adóssággal." $ Sor ["pénz"]. - Rubles.
";
}

// a használt memória felszabadítása
$eredmény-\u003e Close ();

// zárja be a kapcsolatot
$mysqli-\u003e közel.();
}

A feladat az Ön számára - különbségek keresése.

4) Kommunikáció az adatbázisgal a PDO-val:

Amikor csatlakozik a MySQL adatbázis, előkészített kifejezések használata (a Készítsünk módszerrel), és ennek eredményeként a nagy biztonság és nagyban növeli a sebességet.

config fájl. Az előző módszerből! - azonos

index.php.

// PDO stílus a mysql kommunikációhoz
Ha ($ stmt \u003d $ mysqli-\u003e előkészítése ("Válassza ki a nevet, Vene-t a Dolg ORDOR által pénzből< ? LIMIT 5")) {

$ Stmt-\u003e bind_param ("i", $ summa);
$ Summa \u003d 100000;

// futtassa a végrehajtást
$ Stmt-\u003e végrehajtás ();

// A betakarított értékek változókjának bejelentése
$ Stmt-\u003e bind_result ($ col1, $ col2);

Echo ", akinek le kell térnem:

";

// A lekérdezési eredmények kiválasztása
Míg ($ stmt-\u003e Fetch ()) () ()) (
Echo $ col1. "Adóssággal." $ col2. - Rubles.
";
}

// a használt memória felszabadítása
$ Stmt-\u003e közel ();

// zárja be a kapcsolatot
$ mysqli-\u003e közel ();

Amint látjuk, sokkal nehezebb és szükséges, hogy megtanulják a PDO egy külön téma.