MySQL požaduje príklady v PHP. SQL - požiadavky a ich spracovanie pomocou PHP

Práca s databázou MySQL s RNR

Prednáška. Pripravený prokhorov vs


1. Pripojenie scenárov PNP s tabuľkami MySQL

Zvážte najčastejšie používané funkcie, ktoré vám umožňujú pracovať s MySQL databázou RNR.

Keď RNR a MYSQL interagtuje, program interaguje s DBMS pomocou súboru funkcií.

1.1 Spojenie so serverom. Funkciamysql_connect.

Pred prácou s databázou musíte s ním nainštalovať sieťové pripojenie, ako aj autorizácia správania. Toto je funkcia mysql_connect ().

zDROJE MYSQL_CONNECT (]])

Táto funkcia nastaví sieťové pripojenie k databáze MySQL umiestnenej na hostiteľovi $ servera (predvolené je LocalHost, t.j. Aktuálny počítač) a vráti otvorený identifikátor pripojenia. S týmto identifikátorom sa vykonáva všetka ďalšia práca. Všetky ostatné funkcie užívajúce tento identifikátor (deskriptor) ako argumenty jednoznačne definujú vybranú databázu. Pri registrácii je užívateľské meno $ Username a heslo $ Heslo (štandardne, užívateľské meno, z ktorého je aktuálny proces beží - pri ladení skriptov: root a prázdne heslo):

$ dbpasswd \u003d ""; // Heslo

// Zobrazte varovanie

echo ("

");

Premenné $ dblokácia, $ dBuser a $ DBPSswd Store Server názov, používateľské meno a heslo.

1.2 Tarte spojenie so serverom. FunkciamYSQL_CLOSE

Pripojenie k serveru MySQL sa automaticky zatvorí na konci skriptu, alebo pri volaní funkcie mysql_close

bOOL MYSQL_CLOSE ()

Táto funkcia prelomí pripojenie k serveru MySQL a vráti TRUE s úspešným vykonaním operácie a nepravdivé inak. Funkcia prijíma deskriptor databázového pripojenia ako argument vrátený funkciou mysql_connect.

$ dblokácia \u003d "localhost"; // Názov servera

$ dbuser \u003d "root"; // užívateľské meno

$ dbpasswd \u003d ""; // Heslo

// Zadajte pripojenie k databázovému serveru

// potlačiť symbol výstupu chyby @ pred volaním funkcie

$ dbcnx \u003d @ mysql_connect ($ dblokácia, $ dbuser, $ dbpasswd);

ak (! $ dbcnx) // Ak je deskriptor 0, pripojenie nie je nainštalované

// Zobrazte varovanie

echo ("

B. v súčasnosti Databázový server nie je k dispozícii, takže správne zobrazenie stránky nie je možné.");

ak (mysql_close ($ dbcnx)) // zlomiť pripojenie

eCHO ("Pripojenie k databáze je prerušené");

eCHO ("Dokončiť spojenie");

1.3 Vytvorenie databázy. Vytvoriť funkciu databázy

Príkaz - Vytvorenie databázy je k dispozícii len pre administrátora servera a na väčšine hosťovaní je nemožné vykonať:

Vytvoriť názov databázy

Vytvorí novú databázu s názvom viazania názvu.

Príkladom práce s touto funkciou:

@ Mysql_query ("vytvoriť databázu $ dbname");

Odporúča sa používať apostrofy všade ("SQL - príkaz") ako obmedzovačmi riadkov obsahujúcich príkazy SQL. To môže zabezpečiť, aby sa žiadna premenná $ náhodne mohla interpolovaná (t.j. nebude nahradená svojou hodnotou) a zvýši sa bezpečnosť skriptov.

Create Database Database Database Crew je k dispozícii len pre Superuser, a nie je možné vykonať jednoduchý používateľ na väčšine užívateľov hostingu. K dispozícii je len správcovi servera.

Pre experimenty vytvorte databázu testbase vykonaním dotazu SQL z príkazového riadka. Ak to chcete urobiť, prihláste sa do systému MySQL a zadajte príkazový riadok MySQL:

mySQL\u003e Vytvorenie databázovej testbase;

Potom by ste mali vytočiť:

mySQL\u003e Použite testbase;

Tvorba databázy:


1.4 Vyberte databázu. Funkciamysql_select_db.

Pred odoslaním prvej požiadavky na server MySQL je potrebné určiť, ktorá databáza budeme pracovať. Na tento účel je funkcia MySQL_SELECT_DB určená:

bOOL MYSQL_SELECT_DB (String $ database_name [, zdroj $ link_identifier])

Opisuje php, že pri ďalších operáciách s $ link_identifier pripojenie bude použité $ database_name.

Pomocou tejto funkcie je ekvivalentná volaniu príkazu na použitie v sql dotaz, t.j. funkcia mysql_selection_db vyberie databázu ďalšej práce a všetky nasledujúce SQL dotazy sa vzťahujú na vybranú databázu. Funkcia má názov databázy databázy vybranú databázu ako argumenty a deskriptor zdroja. Funkcia sa vracia true s úspešnou prevádzkou a nepravdivou - inak:

// Kód pripojenia s databázou

ak (! @ mysql_selection_db ($ dbname, $ dbcnx))

// Zobrazte varovanie

echo ("

B Teraz databáza nie je k dispozícii, takže správne zobrazenie stránky nie je možné.");

1.5 Chyby spracovania

Ak sa vyskytnú chyby počas práce s MySQL (napríklad výzvy nie sú vyvážené, alebo nie je dostatok parametrov), potom sa chybové hlásenie a jeho číslo možno získať pomocou dvoch funkcií opísaných nižšie.

Je dôležité starostlivo a používať tieto funkcie včas, pretože inak sa delenie skriptov môže stať zložitejšie.

● Funkcia:

int mysql_errno ()

vracia počet najnovších zaznamenaných chýb. Nemôžete zadať identifikátor pripojenia $ link_entfier, ak bol počas spustenia skriptu nainštalovaný iba jedno spojenie.

● Funkcia:

string mysql_error ()

návrat nie je číslo, ale reťazec obsahujúci text chybového hlásenia. Je vhodné použiť na účely ladenia. Zvyčajne sa MySQL_Error používa s dizajnom alebo zomrením (), napríklad:

@ Mysql_connect ("LocalHost", "User", "Heslo")

alebo zomrieť ("Chyba pripojenie k databáze:" .mysql_error ());

Prevádzkovateľ @, ako obvykle, sa používa na potláčanie štandardného varovania, ktoré sa môže vyskytnúť v prípade chyby.

V nedávne verzie RNR VAROVANIE V MYSQL FUNKCIE nie je štandardne zaregistrované.

1.6 Spojenie s MySQL. Súbor (config.php.)

Zvyčajne na mieste existuje niekoľko skriptov naraz, ktoré potrebujete prístup do tej istej databázy.

Kód zodpovedný za pripojenie k MySQL sa odporúča prideliť samostatný súbora potom sa pripojte pomocou funkcie zahrnutia potrebné skripty.

To dáva zmysel umiestniť funkcie na pripojenie, výber a vytvorenie databázy do rovnakého súboru (config.php), kde sú premenné deklarované s názvom servera $ dblokácia, $ DBUSER User Meno, heslo $ DBPASPSWD a názov Názov databázy $ dbname:

Config.php Listing:

//config.php kódu súboru obsahujúci parametre pripojenia so sebou a výber databáz

// Zobrazí chybové hlásenia pre prehliadač

$ dblokácia \u003d "localhost"; // Názov servera

$ dbname \u003d "Vložiť základný názov" // názov databázy: vytvorené alebo už existujúce

$ dbuser \u003d "root"; // Meno používateľa databázy

$ dbpasswd \u003d ""; // Heslo

// Zadajte pripojenie k databázovému serveru

// potlačiť symbol výstupu chyby @ pred volaním funkcie

[Chránené e-mail]_Connect ($ Dblokácia, $ DBUSER, $ DBPASSWD);

ak (! $ dbcnx) // Ak je deskriptor 0, pripojenie k databázovému serveru nie je nainštalované

// Zobrazte varovanie

echo ("

V súčasnosti nie je databázový server k dispozícii, takže správne zobrazenie stránky je nemožné.

");

// Vytvorte databázu $ dbname - to môže urobiť len superuser

// ak už existuje databáza, bude existovať nekritická chyba

@ Mysql_query ("vytvoriť databázu, ak neexistuje $ dbname ');

// Kód pripojenia s databázou: Vykonávame jednoznačný výber novovytvorenej databázy alebo existujúcej databázy

// potlačiť symbol výstupu chyby @ pred volaním funkcie

ak ( [Chránené e-mail]_select_db ($ dbname, $ dbcnx) // Ak je deskriptor 0, pripojenie databázy nie je nainštalované

// Zobrazte varovanie

echo ("

V súčasnosti nie je databáza k dispozícii, takže správne zobrazenie stránky nie je možné.

");

// Malé pomocná funkciaktorá zobrazuje správu

// o chybe v prípade chyby databázy

funkcia PuteRror ($ správa)

echo ("");


2. Vykonajte databázové dotazy

2.1 Vytvorenie tabuľky. Funkcia Vytvoriť tabuľku:

Vytvorte názov tabuľky tabuľky (typ označeného namepolu, typ označeného namepile,)

Tento príkaz v databáze vytvorí nový stôl so stĺpcami (poliami), definovanými vlastnými menami (mená) a špecifikované typy. Po vytvorení tabuľky bude možné pridať záznamy pozostávajúce z polí uvedených v tomto príkazi.

Zoznam Test_11.php. Program, ktorý vytvára novú tabuľku v databáze:

zahrnúť "config.php"; // Pripojiť k seberu servera a databázy

mysql_query ("Vytvoriť tabuľku, ak neexistuje ľudia

iD INT ANT AUTO_INCRECTA

alebo zomrieť ("chyba mysql:" .mysql_error ());


Tento skript vytvára novú tabuľku ľudí s dvoma poliami. Prvé pole má typ Int (Integer) a ID NAME. Druhý textový text (textový reťazec) a názov názvu.

Ak stôl existuje, dizajn alebo zomrie () bude fungovať.

Voliteľná fráza, ak nie je presiahnutá, ak je zadaná, hovorí MySQL Server, že by nemal generovať chybové hlásenie, ak tabuľka so zadaným názvom už existuje v databáze.

Pamätajte si tie časy, keď som nevedel, čo mySQL A často hľadali takéto výrobky na internete. Ale z nejakého dôvodu boli zriedkavé. Teraz som sa rozhodol stanoviť také užitočné výrobky mySQL a php. To sa stalo ešte raz. Pokúsim sa napísať všetko v prístupnom jazyku.

začíname s MySQL a PHP

Takže, na začiatok, potrebujeme miestny server, aby sa spustil pHP skripty A pripojte sa k databáze (potom budem zavolať databázu, čo znamená "databázu"). Ak ešte nemáte lokálny server, musíte najprv prečítať inštaláciu a konfiguráciu lOCALHOST.a potom začnite študovať databázu mySQL a jeho DBMS (databázové správy).

Ak už máte tento server, robíme tak. Ak chcete začať, chcem vám predstaviť DBMS Phpmyadmin.Umožňuje spravovať (pridať, odstrániť, upraviť) záznamy v databáze.

Toto je hlavná stránka DBMS phpmyadmin.. Odtiaľ môžete vytvoriť svoju databázu a uložiť potrebné položky do neho. Je veľmi výhodné pri vytváraní stránok, pretože informácie sú štruktúrované a môžete veľmi rýchlo získať žiadny vstup z databázy.

Ako už bolo spomenuté, prvá časť článku, oboznámenie sa s mySQL a phpmyadmin.. Myslím, že teraz pochopíte, čo je MySQL a môžeme začať skúmať funkčnosť phpmyadmin. Ak chcete začať prácu, musíme vytvoriť samotnú databázu (databázu). Ona bude mať svoje vlastné meno, za ktoré jej budeme hľadať neskôr.

Tu je všeobecná štruktúra štruktúry databázy:

Aby ste vytvorili databázu, zadajte do vstupného poľa pod riadkom "Vytvoriť novú databázu" (na hlavnej stránke PHPMYADMIN'S) akékoľvek meno (nie CYRILLIC!) Pre budúcu základňu. Vytvorím databázu s názvom "BAZA". Po diagrame BD štruktúry musíme urobiť stôl. Ak to chcete urobiť, po vytvorení základne budete mať takéto okno:

Tu vytvorím tabuľku s menom používateľov a 3 polia v ňom. Ďalej phpmyadmin nás požiada, aby sme nastavili štruktúru pre každé pole:

Tu v stĺpci "Pole" musíte zadať názov, v "Type" Zadajte typ údajov, ktoré sa tam uložia (Int je číslo, Varchar - riadok alebo malý (!) Text). Okrem toho zadáte pole s názvom "ID" parameter "Auto_inCreament", čo znamená, že sa zvýši pri každom vložení akýchkoľvek údajov a nastavte parameter "Primárny kľúč" (položte Rounder), znamená to, že na prvom stĺpci môžeme určite identifikujte pole.

"Rozhodne identifikovať pole" znamená, aj keď meno a priezvisko bude rovnakí, stĺpec ID bude mať rôzne hodnoty (keď sa automaticky zvyšuje na jednotku zakaždým).

Kliknite na tlačidlo "Uložiť". Tak sme vytvorili tabuľku používateľov, v ktorej môžeme uložiť meno a priezvisko (ID nemusí byť vložené, MySQL urobí všetko pre nás), v databázových užívateľov. Vytvorili sme tabuľku na ukladanie záznamov. A ako ich tam vložiť? Čítať nižšie

Vyberte v ponuke "Prilepiť" a zapíšte požadované hodnoty do potrebných polí. Teraz, ako odstrániť alebo zmeniť hodnoty v databáze MySQL z databázy PHPMYADmin ... Ak chcete odstrániť, stačí prejsť na ponuku Prehľad a stlačte červenú krížovú križovatku oproti nahrávaniu:

A na úpravu, kliknite na ceruzku a nahradiť potrebné polia. No, na túto lekciu je dokončená. Teraz môžete spravovať databázu MySQL pomocou phpMyAdmin. V ďalšej lekcii vás naučí uložiť, prijímať, odstrániť a aktualizovať údaje v databáze pomocou PHP.. Je to veľmi pohodlné a praktické.

Práca s databázou MySQL z PHP

Takže, najprv musíte sa naučiť pripojiť sa k už známych databáze. Tento kód sa použije:

V uvedenom kódexe som pripojil k serveru LocalHost pomocou prihlásenia koreň. ktorý nevyžaduje heslo (preto nešpecifikujem). Po pripojení k databáze môžeme vykonávať všetky tieto operácie, ktoré boli vykonané v phpMyadmin. To znamená, že vloží, odstrániť, zmeniť a získať rôzne informácie. Teraz, na bodoch:

Vložte položky do databázy SQL na PHP

$ Downder \u003d "vložiť do" tabuľky "(" bod poľa ",` Upresniť pole ") (" Akákoľvek hodnota "," Akákoľvek hodnota ")"; $ výsledok \u003d mysql_query ($ dotaz); Ak ($ výsledok \u003d\u003d TRUE) (ECHO "Úspešné!") Else (Echo "Chyba!
".mysql_error ();)

To znamená, že vložka je vykonaná funkciou vloženia. Ak všetko úspešne pokračovalo, MySQL vráti výsledok TRUE alebo iného - FALSE.

Polia môžu byť špecifikované aspoň koľko, hlavnou vecou je, že všetko existovali v databáze. To znamená, že je napríklad tabuľka, v ktorej sú polia "meno", "priezvisko" a "mesto". Ak chcete vložiť do neho, použijeme taký kód:

$ Downder \u003d "vložiť do" užívateľov "(` Meno`, `priezvisko`,` City`) Hodnoty ("Ruslan", "Huzin", "Kokshetau") "; $ výsledok \u003d mysql_query ($ dotaz); Ak ($ výsledok \u003d\u003d TRUE) (ECHO "Úspešné!") Else (Echo "Chyba!
".mysql_error ();)

Odstránenie položiek z databázy SQL do PHP

Vymazanie sa vykonáva funkciou Delete. Pre toto bude niečo také, ako tento kód:

$ Downder \u003d "Odstrániť z` užívateľov", kde "meno" \u003d "Ruslan"; $ výsledok \u003d mysql_query ($ dotaz); Ak ($ výsledok \u003d\u003d TRUE) (ECHO "Úspešné!") Else (Echo "Chyba!
".mysql_error ();)

To znamená, že vymažujeme všetky riadky z USSS Tabuľky (No, alebo One), kde sa stĺpec Názov rovná hodnotám RUSLAN.

Zmena hodnôt v databáze MYSQL na PHP

Môžeme tiež vykonať zmeny už existujúce záznamy v tabuľke. Napríklad musíme nahradiť hodnotu stĺpca názvu v rade, kde stĺpec priezviska je HUZIN. Ak to chcete urobiť, vykonajte taký kód:

$ Downing \u003d "Update` Užívateľské" Názov "Názov" \u003d "Myname", kde "priezvisko" \u003d "hUZIN"; $ výsledok \u003d mysql_query ($ dotaz); Ak ($ výsledok \u003d\u003d TRUE) (ECHO "Úspešné!") Else (Echo "Chyba!
".mysql_error ();)

Získanie hodnôt z databázy

Teraz najzaujímavejšie. Akonáhle sme niečo nahrali, mali by ste sa vrátiť? Napríklad, musíme sa dostať z užívateľov tabuľky všetky riadku, kde sa stĺpec Názov rovná Ruslanovi. Aby sme to urobili, potrebujeme malý iný kód ako v prvých príkladoch. Tu je vlastne:

$ Downder \u003d "Select * z miesta, kde" meno "\u003d" Ruslan ""; $ výsledok \u003d mysql_query ($ dotaz); Ak ($ výsledok \u003d\u003d TRUE) (ECHO "Úspešné!") Else (Echo "Chyba!
".Mysql_error ();) $ data \u003d mysql_fetch_array ($ výsledok); / * Teraz sú údaje z tabuľky uložené v premennej * /

Tu sme potrebovali inú funkciu, na zaznamenanie vybraných údajov do premennej (pole) na PHP. Ak chcete kontaktovať vybraný reťazec, píšeme takto:

$ Data ["Názov stĺpca"]

to znamená, že sa priezvisko z vybranej linky (kde meno bolo RUSLAN), mali by sme napísať na záver:

echo $ data ["priezvisko"];

A keď som odber vzoriek zo stola, som napísal SELECT *, táto hviezdička znamená, že potrebujete vybrať všetky stĺpce zo reťazca. Ak potrebujeme napríklad, vyberte si iba priezvisko, zápis vyberte položku "Priezvisko". A pre odber vzoriek naraz niekoľko riadkov zo stola sa vyžaduje aj cyklus tiež pre ich výstup. Toto je napríklad riadky s stĺpikom RUSLAN bude niekoľko. Tu je kód:

$ Downder \u003d "Select * z miesta, kde" meno "\u003d" Ruslan ""; $ výsledok \u003d mysql_query ($ dotaz); zatiaľ čo ($ data \u003d mysql_fetch_array ($ výsledok)) (echo $ dát ["Názov"]. "
"$ Data [" priezvisko "]."


"; }

Teraz sa zobrazia všetky riadky, z ktorých sa stĺpca názvu rovná hodnotám RUSLAN.

Tu ste splnili hlavné riadiace funkcie databáza MySQL priamo z php skript.

V tomto článku sa naučíme poslať požiadavky do databázy prostredníctvom PHP. Tento článok je veľmi dôležitý a je potrebné, aby ste pochopili. Budem vás však upokojiť - materiál je veľmi jednoduchý, takže by nemalo byť žiadne ťažkosti.

Pred prechodom na tému článku, varujem vopred, že nebudem podrobne rozobrať jazyk SQL. Všetky potrebné informácie sa demontovali v kategórii určenej, a tu sme len pracujeme s MySQL cez PHP.

Teraz choďte do K. odosielanie požiadaviek databázy do PHP:


}
$ Mysqli-\u003e dotaz ("vložiť do nesprávneho (názvu, e-mailu) hodnoty (" myname "," [Chránené e-mail]")");
$ mysqli-\u003e blízko ();
?>

V tomto príklade sme pripojili k databáze, skontrolovali úspech spojenia, zaslali žiadosť pomocou metódy dopyt ()A potom zatvorte pripojenie. Ako vidíte, všetko je veľmi jednoduché. Odoslanie akéhokoľvek SQL dotazy Len jedna metóda - dopyt ()Preto je v tomto prípade všetko šialene jednoduché.

Teraz mierne komplikuje úlohu. Pozrime sa na požiadavky, ktoré sa vrátia výsledok. - Výsledok. Najobľúbenejšia požiadavka vykreslená výsledok. - Toto je vzorka údajov z tabuľky. V nasledujúcom príklade urobíme vzorovú vzorku a potom zhrnúť výsledok:

$ mysqli \u003d @ nEW MYSQLI ("LOCALHOST", "admin", "pass", "mybase");
ak (mysqli_connect_ernno ()) ()
ECHO "Pripojenie nie je možné:" .mysqli_connect_error ();
}
$ fass_set \u003d $ mysqli-\u003e
Zatiaľ čo ($ Row \u003d $ efekt_set-\u003e fetch_assoc ())
Print_r ($ Row);
Echo "
";
}
$ faster_set-\u003e blízko ();
$ mysqli-\u003e blízko ();
?>

Ak chcete začať, budem trochu vysvetľovať, čo je výsledok.. Výsledok. - Toto je tabuľka s výsledkom. Táto tabuľka má súbor záznamov (tabuľkové riadky). A pre výstup všetkých záznamov musíte presunúť každý riadok tabuľky a vybrať ho. A teraz vysvetľujem príklad: Po odoslaní žiadosti sme tvorení výsledok.. Potom priradíme premennú v cykle riadok Hodnota ďalšieho riadku, to znamená jednorozmerné pole, ktoré vracia metódu fetch_assoc (). Keď sú všetky čiary vyčerpané, metóda fetch_assoc () vrátiť sa falošnýa bude uvoľnený z cyklu. Vnútorné cykly zatiaľ čo Jednoducho odvodzujeme pole pomocou funkcie ladenia. print_r ()Hoci určite by bolo možné stiahnuť pre každý.Ale teraz to nie je potrebné.

Poďme stručne zhrnúť, ako pracovať výsledok.:

  1. Prijať výsledok.Zaslaním príslušnej požiadavky do databázy.
  2. V cykle na každom iterácii priradí nasledujúci riadok (nahrávanie) výsledok. Použitie metódy fetch_assoc () Nejaká premenná riadok. Potom môžete pracovať s touto premennou ako s jednorozmerným asociatívneho poľa, v ktorom sú klávesy názvy polí tabuľky a hodnoty zodpovedajú aktuálnemu záznamu.
  3. Uistite sa, že zatvorte výsledok. Metóda zavrieť ()Na pokrytie zdrojov.

Ako ste si všimli metódu fetch_assoc () Vracia nasledujúci záznam vždy. To je prvé prvé, potom 2., potom 3. a tak ďalej. Ak máte dobrý zážitok z programovania, okamžite budete hádať, že je to spôsobené vnútorným ukazovateľom, ktorý môžete samozrejme pohybovať. Kde sa používa? Napríklad, môže byť použitý, keď potrebujete pracovať výsledok. nie 1 , ale 2 Viac než raz. Ak chcete znovu vytvoriť tú istú žiadosť, môžete jednoducho presunúť ukazovateľ na začiatok. A potom sa môžete znova zapojiť výsledok. Pomocou metódy Fetch_ASSOC ().

Ak chcete zmeniť polohu ukazovateľa, je metóda data_seek ()ktorý si vyžaduje celé číslo 0 pred " počet záznamov - 1", Ukazovateľ stúpa na príslušný parameter nahrávania:

$ mysqli \u003d @ nEW MYSQLI ("LOCALHOST", "admin", "pass", "mybase");
ak (mysqli_connect_ernno ()) ()
ECHO "Pripojenie nie je možné:" .mysqli_connect_error ();
}
$ faster_set \u003d $ mysqli-\u003e dotaz ("Select * z mytable");
$ faster_set-\u003e num_rows;
Zatiaľ čo ($ Row \u003d $ efekt_set-\u003e fetch_assoc ())
Print_r ($ Row);
Echo "
";
}
$ Faster_set-\u003e data_seek (0);
Zatiaľ čo ($ Row \u003d $ efekt_set-\u003e fetch_assoc ())
Print_r ($ Row);
Echo "
";
}
$ faster_set-\u003e blízko ();
$ mysqli-\u003e blízko ();
?>

V tomto príklade sme priniesli počet záznamov v výsledku_set Použitie nehnuteľnosti num_rows. A tiež sa zoznámil s metódou data_seek (). To znamená, že sme prešli celý výsledok, potom vrátil ukazovateľ 0. A opäť prešiel výsledkom.

V tomto článku sme zopakovali pripojenie k databáze a zatvorením pripojenia. A tiež sa naučil ako odoslať požiadavky do databázy prostredníctvom PHP. Učil sa, ako prijímať výsledok_SET. A ako s ním pracovať. To je všetko, čo potrebujete vedieť o úspešnom práca s MySQL v PHP.

Ak chcete získať maximálny návrat z vašej databázy MySQL, je dôležité pochopiť, ako sa pripojiť z užívateľského programu na PHP do databázy MySQL.

Táto príručka popisuje nasledujúce tri metódy spolu s príslušným programom príkladného programu na PHP, čo vysvetlí, ako sa pripojiť s PHP do databázy.

  • Pripojenie pomocou rozšírenia MySQLI (odporúčané)
  • Pripojenie s CHOP (odporúča sa)
  • Pripojenie pomocou tradičných funkcií zastarané mysql_ (žiadaná hodnota)

Ak to chcete urobiť, nainštalujte balík PHP-MYSQL.

Na základe distribúcie REDHAT, vrátane, použite yum na inštaláciu PHP-MYSQL, ako je uvedené nižšie.

Yum nainštalovať php-mysql

V závislosti od vášho systému budeme nainštalovať alebo aktualizovať nasledujúce závislosti:

  • php-cli.
  • php-common
  • php-cma
  • php-pgsql

Po nainštalovaní všetkého sa stránka phpinfo zobrazí MySQL modul, ako je uvedené nižšie:

Pre všetky nižšie uvedené príklady sa pripojí k databáze MYSQL, ktorá už existuje. Ak ste nový do MySQL, toto je dobré miesto na spustenie :.

POZNÁMKA: Všetko, čo je tu opísané, bude fungovať aj s Marádb, ako to funguje na mysql.

1. Pripojenie k PHP pomocou rozšírenia MySQLI

MySQLI znamená zlepšenie mysql.

Upozorňujeme, že väčšina distribúcií (napríklad: Centos), PHP-MYSQLI je už súčasťou balíka PHP-MYSQL. Takže nemusíte vyhľadávať a nainštalovať balík PHP-MYSQLI. Všetko, čo musíte urobiť, je nainštalovať balík PHP-MYSQL, aby ste získali pracovné rozšírenie mysqli vo vašom systéme.

Vytvorte nasledujúci súbor mysqli.php v dokumentoch Documentroot Vpache:

connect_error) (Die ("Chyba: Nie je možné pripojiť sa:". $ Conn-\u003e Connect_Error);) ECHO "Pripojiť sa k databáze.
"; $ výsledok \u003d $ conn-\u003e dotaz (" Vyberte Názov z zamestnanca "); ECHO" Počet riadkov: $ výsledok-\u003e NUM_ROWS "; $ CONTION-\u003e CLOSE ();\u003e

Vo vyššie uvedenom:

  • MySQLI - Táto funkcia spustí nové pripojenie pomocou rozšírenia MySQLI. Táto funkcia bude trvať štyri argumenty:
    1. Názov hostiteľa, kde funguje databáza MySQL
    2. Používateľské meno pre pripojenie MySQL
    3. Heslo používateľa MySQL
    4. MYSQL databázy pre pripojenie.
  • Funkcia dotazu - Použite ho na určenie vašej požiadavky MySQL. V tomto príklade si vyberieme názov mena z databázy zamestnancov.
  • Nakoniec zobrazujeme počet riadkov vybraných pomocou premennej NUM_ROWS. Zatvoríme tiež pripojenie, ako je uvedené vyššie.

Pripojte sa k databáze. Počet reťazcov: 4

POZNÁMKA: Ak sa pokúšate pripojiť k vzdialenej databáze MySQL, môžete to urobiť, aby ste sa vyhli chybe pripojenia k hostiteľovi: Ako umožniť klienta MySQL pripojiť sa k vzdialenému serveru MySQL.

2. Pripojenie pomocou PHP do MySQL s predĺžením PDO

CHOP znamená PHP dátové objekty.

PDO_MYSQL implementuje rozhranie PDO poskytnuté phorse na pripojenie programu do databázy MySQL.

Vo väčšine distribúcií Linuxu (napríklad Centos a RedHAT), balík PHP-PDO je už zahrnutý do balíka PHP-MYSQL. Takže nemusíte vyhľadávať a nainštalovať balík PHP-PDO. Jediné, čo musíte urobiť, je nainštalovať PHP-MYSQL balík, aby ste získali funkciu PDO_MYSQL PHP spustenie rozšírenia na vašom systéme.

Vytvorte nasledujúci súbor MySQL-PDO.PHP vo vašom dokumente APACHACE:

setaTtribute (CHOP :: ATTH_ERRMODE, CHOP :: ERRMODE_EXPERION); ECHO "Pripojenie k databáze.
"; $ SQL \u003d" Vyberte Názov od zamestnanca "; Vytlačiť" Meno zamestnanca:
"Foreach ($ conn-\u003e dotaz ($ SQL) ako $ Row) (Print $ Row [" Názov "]."
";) $ Conn \u003d null;) Chyba (ECHO" Chyba: Nie je možné pripojiť: ". $ Err-\u003e GetMessage ();)

Vo vyššie uvedenom:

  • nový CHOP - vytvorí nový objekt CHOP, ktorý bude mať nasledujúce tri argumenty:
    1. MySQL pripojenie reťazca: bude vo formáte "MySQL: Host \u003d $ Hostname, dbname \u003d $ dbname". Vo vyššie uvedenom príklade sa databáza pracuje na miestnom hostiteľovi, a pripojujeme sa k databáze AndreyEX.
    2. Užívateľské meno pre pripojenie k MySQL.
    3. Heslo pre používateľa MySQL.
  • $ SQL premenná - vytvorenie sql dotazu, ktorý chcete vykonať. V tomto príklade vyberieme názov stĺpca zo stola zamestnancov.
  • dotaz ($ SQL) - Tu vykonávame požiadavku SQL, ktorú sme práve vytvorili.
  • foreach - Tu prechádzame cez vyššie uvedené príkazy a uložíme ich do variabilnej čiary $, a potom im ukážeme pomocou príkazu tlače.
  • V MySQL CHOP na zatvorenie pripojenia jednoducho obnovte hodnotu premennej $ conn.

Keď zavoláte MySQLI.PHP z prehliadača, uvidíte nasledujúci záver, ktorý označuje, že PHP sa mohol pripojiť k databáze MYSQL a vytvoriť vzorku údajov.

Pripojte sa k databáze. Názov dôstojníka: Siteslan Maria Oleg

3. Pripojenie k PHP pomocou funkcií MySQL_ (žiadanej hodnoty)

Túto metódu použite len vtedy, ak používate staršiu verziu PHP a z nejakého dôvodu ju nemôžete aktualizovať na novú verziu.

Toto je zastarané predĺženie PHP 5,5. Počnúc verziou PHP 7.0 nebude fungovať, pretože bola odstránená.

Počnúc verziami PHP 5.5 Keď používate tieto funkcie, budú generovať E_DEPREPECATED ERROR.

Vytvorte nasledujúci súbor mysql-legacy.php pod APACHACE DOCUMENTOUND:

"; $ výsledok \u003d mysql_query); $ Row \u003d MySQL_FETCH_REGRES ($S výsledok); ECHO" Zamestnanec 1: ", $ Row,"
n "; mysql_close ($ conn);\u003e

Vo vyššie uvedenom:

  • Funkcia MySQL_Connect má tri argumenty: 1) Názov hostiteľa, kde MySQL databázy funguje, 2) Užívateľské meno pre pripojenie k MySQL, 3) Heslo pre MySQL. Tu sa pripojíte k databáze MySQL, ktorá beží na lokálnom serveri pomocou root používateľského mena a jeho hesla.
  • Funkcia MYSQL_SELECT_DB - nasledovne z mena vyberie databázu, ku ktorej chcete pripojiť. To je ekvivalentné príkazu "použitie". V tomto príklade sa pripojíme k databáze AndreyEX.
  • Funkcia MySQL_QUERY - Použite ho na určenie vašej požiadavky MySQL. V tomto príklade si vyberieme názov mena z databázy zamestnancov.
  • mySQL_FETCH_ROW - Túto funkciu použite na extrahovanie riadkov z dotazu SQL, ktorý sme práve vytvorili.
  • Nakoniec zatvorte pripojenie pomocou príkazu MySQL_CLOSE, ako je uvedené vyššie.

Pri volaní MySQL-Legacy.php z vášho prehliadača uvidíte nasledujúci záver, ktorý označuje, že PHP sa mohol pripojiť k databáze MySQL a vytvoriť vzorku údajov.

Pripojte sa k databáze. Zamestnanec 1: Andreyex

S PHP ...

Vytvorenie pripojenia rôznymi spôsobmi:

1) Starý Dedovsky spôsob pripojenia k MySQL:

$ CONN \u003d MYSQL_CONNECT ($ DB_HOSTNAME, $ DB_USERNAME, $ DB_PASSWORD) ALEBO DIE ("NO Spojenie so serverom");
mysql_select_db ($ db_database, $ conn) alebo zomrieť ("nie je podarilo sa pripojiť k databáze");

Vysvetlenie premennej nižšie.

Súčasne sa používajú funkcie:

  • mysql_connect () - Pripojenie k serveru;
  • mysql_select_db () - Pripojenie k databáze;

Zároveň neustále kontrolujeme prítomnosť chýb týmto spôsobom: alebo zomrieť ("chyba je tak"); - prekladá tak alebo zomrie s takýmto chybou - okamžite nájsť, kde je chyba.

config.php.

// Premenné pre pripojenie s databázou
$ Hostiteľ \u003d "localhost"; / Hostiteľ
$ používateľské meno \u003d "root"; // heslo pre pripojenie k databáze
$ heslo \u003d ""; // Heslo Ak chcete ukradnúť do databázy - v miestnom počítači môže mať prázdnu hodnotu.
$ database_name \u003d "MY-DOLGI"; // BD Meno

// starý spôsob života s databázou
Mysql_connect ($ hostiteľ, $ používateľské meno, $ heslo) alebo zomrieť ("Nemôžem sa pripojiť k vytvoreniu zlúčeniny");

// Vyberte databázu. Ak je chyba zobraziť
mysql_select_db ($ database_name) alebo zomrieť (mysql_error ());

index.php.

vyžadujú_once "config.php";


$ Výsledok \u003d mysql_query ("Select mena, peniaze z DOLG objednávky podľa limit 5") alebo Die (MySQL_Error ());



";


Zatiaľ čo ($ Row \u003d Mysql_fetch_ssoc ($ výsledok)) (
";
}


mysql_free_result (výsledok $);

// Zatvorte pripojenie
mysql_close ();

2) Ďalší postupný procesný štýl - spojenie s databázou s MySQLI:

Táto metóda:

  1. pohodlné;
  2. rýchlejšie až 40 krát;
  3. zlepšená bezpečnosť;
  4. existujú nové funkcie a funkcie;

Príklad pripojenia s databázou na PHP so vzorkou z tabuľky

config.php.

// Sociológia s databázou
$ link \u003d mysqli_connect ("localhost", "používateľské meno", "heslo", "názov-databáza"); // Tu som zadať vaše údaje priamo: Užívateľské meno, heslo a názov databázy, prvé pole zvyčajne localhost

// Výstup chyby pripojenia
Ak (! $ link) (
ECHO "Chyba pripojenie k databáze. Kód chyby:". mysqli_connect_error ();
východ;
}

Poznámka - Všade používajte MySQLI, nie MySQL !!!

index.php.

vyžadujú_once "config.php";

// vykonajte žiadosť. Ak sa zobrazí chyba
Ak ($ výsledok \u003d mysqli_query.($ Odkaz, "Vybrať názov, peniaze z objednávky DOLG podľa limit peňazí 5")) (

Echo "Na koho musím zostupovať:

";

// Výber výsledkov dotazu
Kým ($ Row \u003d mysqli_fetch_assoc.($ výsledok))
ECHO $ \u200b\u200bROCE ["NAME"]. "S dlhom." $ ROCE ["MONEY"]. "rubľov.
";
}

// Uvoľnenie pamäte
mysqli_free_result($ výsledok);

// Zatvorte pripojenie
mysqli_close($ Link.);
}

Ako vidíte, niektoré momenty sa zmenili (pridelené kurzívou).

3) Osobná metóda orientovaná na pripojenie k databáze MySQL - pomocou metód a tried:

Nevýhody: ťažšie a menej náchylné na chyby.

Výhody: stručnosť a pohodlie pre programátorov so skúsenosťami.

$ CONN \u003d NOVÝ MYSQLI ($ DB_HOSTNAME, $ DB_USERNAME, $ DB_PASSWORD, $ DB_DATABASE);
Ak ($ conn-\u003e connect_ernno) (
Zomrieť ($ conn-\u003e connect_error);
) Inak (ECHO "spojenie s databázou bolo úspešne zavedené";)

v zásade je všetko intuitívne:

  • $ db_hostname je hostiteľ (väčšinou localhost),
  • $ db_database - názov BD;
  • $ Db_Username a $ db_password - Užívateľské meno a heslo!

Príklad spojenie s databázou na php štýl OOP so vzorkou z tabuľky

config.php.

// Sociológia s databázou
$ mysqli \u003d nová mysqli ("localhost", "užívateľské meno", "heslo", "názov-databáza"); // Tu som zadať vaše údaje priamo: Užívateľské meno, heslo a názov databázy, prvé pole zvyčajne localhost

// Výstup chyby pripojenia
Ak ($ mysqli-\u003e connect_error) (
Die ("Chyba pripojenie k databáze: (" $ mysqli-\u003e connect_ernno ")". MYSQLI_CONNECT_ERROR);
}

Poznámka - Všade používajte MySQLI, nie MySQL !!! A na rozdiel od predchádzajúcej metódy sa šípky objavia "-\u003e", ktoré ukazujú, že je to štýl OOP.

index.php.

vyžadujú_once "config.php";

// vykonajte žiadosť. Ak sa zobrazí chyba
Ak ($ výsledok \u003d $ mysqli-\u003e dotaz.("Vyberte meno, peniaze z objednávky DOLG podľa limitu 5")) (

Echo "Na koho musím zostupovať:

";

// Výber výsledkov dotazu
Kým ($ Row \u003d $ výsledok-\u003e fetch_assoc.()) {
ECHO $ \u200b\u200bROCE ["NAME"]. "S dlhom." $ ROCE ["MONEY"]. "rubľov.
";
}

// Uvoľnenie pamäte
$výsledok-\u003e Zatvoriť ();

// Zatvorte pripojenie
$mysqli-\u003e blízko.();
}

Úloha pre vás - nájsť rozdiely.

4) Komunikácia s databázou s CHOP:

Pri pripojení k databáze MySQL sa používajú pripravené výrazy (podľa metódy Pripraviť) a v dôsledku veľkej bezpečnosti a výrazne zvyšuje rýchlosť.

konfiguračný súbor. Z predchádzajúcej metódy! - rovnaké

index.php.

// PDO štýl pre komunikáciu s MySQL
IF ($ STMT \u003d $ MYSQLI-\u003e Pripravte sa ("Select Meno, Voney z objednávky DOLG podľa peňazí< ? LIMIT 5")) {

$ STMT-\u003e BIND_PARAM ("I", $ SUMMA);
$ Summa \u003d 100000;

// Spustiť vykonanie
$ STMT-\u003e Execute ();

// Oznámenie premenných pre zozbierané hodnoty
$ STMT-\u003e BIND_RESULT ($ COL1, $ COL2);

Echo "Na koho musím zostupovať:

";

// Výber výsledkov dotazu
Kým ($ STMT-\u003e Fetch ()) (
Echo $ col1. "S dlhom." $ col2. "rubľov.
";
}

// Uvoľnenie pamäte
$ STMT-\u003e CLOSE ();

// Zatvorte pripojenie
$ mysqli-\u003e blízko ();

Ako vidíme, je tu oveľa ťažšie a potrebné učiť CHOP je samostatná téma.