Pripojenie k databáze php. Pripojenie k databáze MySQL. PHP pripojenie pomocou rozšírenia Mysqli

  • 03.11.2019

Pripojenie k databáze mysql je vytvorený pomocou funkcie mysql_connect (). Premenné v zátvorkách sa používajú na vytvorenie spojenia.
Ktoré?

1. $ umiestnenie - označuje server, na ktorom sa skript nachádza. Vo väčšine prípadov je to localhost.
2. $ user - do tejto premennej napíšeme meno užívateľa databázy
3. $ heslo - heslo používateľa databázy
Po pripojení k databáze nezabudnite vybrať názov databázy. Ak to chcete urobiť, použite funkciu mysql_select_db (). V zátvorkách píšeme dva parametre:
1. $ dbname - v tejto premennej uvádzame názov vašej databázy. Názov môže byť akýkoľvek. Všetko píšeme, samozrejme, v angličtine.
2. $ connect je rukoväť na pripojenie k databáze. V prípade neúspešného pripojenia k databáze má premenná argument false

Základný kód pripojenia je nasledujúci:

Žiadne pripojenie k databáze

"); exit ();)?>

Tento kód môžete napísať priamo do akéhokoľvek súboru, kde pracujete s databázou. Ale vo väčšine prípadov sa vytvorí samostatný súbor, kde je tento kód napísaný. Tam môžete tiež zadať všetky premenné a konštanty, aby ste určili všeobecné nastavenia pre celú aplikáciu.

Ako vytvoriť pripojenie k databáze phpmyadmin

Každý webový programátor najčastejšie spúšťa takúto operáciu na lokálnom serveri. Pretože po prvé, každá nová webová aplikácia alebo stránka je napísaná a upravovaná na bežnom domácom počítači. Potom, čo programátor skontroloval všetky systémy a nie je presvedčený, že všetko funguje spoľahlivo a hladko. Až potom sa všetko nahrá na vzdialený server.

Pripojenie prebieha tak, ako je popísané vyššie, pomocou funkcií pripojenia a funkcie výberu Databáza... Len malý rozdiel. Ak robíte všetko na lokálnom počítači, užívateľské meno databázy je vo väčšine prípadov root. Heslo neexistuje alebo predpisujeme najjednoduchšie jedno, dva, tri.

Prečo si celý systém komplikovať?

Phpmyadmin je to špeciálne webové rozhranie na správu všetkých databáz umiestnených na vašom lokálnom serveri. Keďže je mimoriadne nepohodlné spravovať databázu cez konzolu.

Vytvorme databázové pripojenie k stránke v php

Teraz sa obraciame na najdôležitejšiu prácu prenosu našej webovej stránky alebo aplikácie na vzdialený server. Teraz si treba uvedomiť, že pre bežnú prevádzku vašej stránky budete potrebovať platený hosting s podporou PHP 5 a vyššie, MySql musí mať rozhranie Phpmyadmin a celé rozhranie správcu súborov na správu súborov vašej stránky.

Pri kúpe hostingu si musíte byť istí, že dostanete informačný list, kde budú uvedené všetky parametre vášho servera. A pre databázové pripojenia k tvoj stránky, sami si vytvoríte vlastnú databázu, zaregistrujete si meno a heslo.

Na mnohých hostingových službách sa všetko deje rôznymi spôsobmi. Buď si sami predpíšete používateľské meno, heslo alebo heslo, používateľské meno sa nastaví automaticky pri vytváraní databázy.
Kód pripojenia je nasledujúci:

Žiadne pripojenie k databáze "); exit ();) if (! @Mysql_select_db ($ dbname, $ connect)) (echo ("

Žiadne pripojenie k databáze

"); exit ();)?>

Ako ste si všimli, nie je nič zložité. Vzali ste ten istý súbor a zmenili ste niekoľko premenných a je to. Len si zapamätajte jedno pravidlo pri prenose lokality na vzdialený server, musíte zmeniť tri premenné v konfiguračnom súbore, a to:

1. $ dbname = "základňa"; // názov databázy
2. $ user = "vashlogin"; // užívateľské meno databázy
3. $ heslo = "123456789"; // heslo používateľa databázy

V tomto článku si dnes povieme o vytvorení databázového pripojenia a rozoberieme, ktorú možnosť je lepšie použiť procedurálne alebo objektovo orientované. Najprv sa pozrime na to, na akej úrovni sa nachádzame, ak je toto úroveň úplného začiatočníka, potom radím bez výnimky začať používať procedurálny štýl pripojenia k databáze. Dávnejšie som na túto tému napísal na svojom blogu článok, pre viac podrobností o procedurálnom štýle pripojenia k databáze si prečítajte článok: „Ako sa pripojiť k MySQL pomocou PHP“. Ak už máte nejaké skúsenosti s prácou s procedurálnym štýlom pripojenia k databáze, tak moje projekty, podobne ako mňa, jednoducho zobrali a prinútili použiť objektovo orientovaný prístup.

Tak či onak si teraz rozoberieme fázy budovania triedy na vytvorenie pripojenia k databáze MySQL v PHP. Potrebujeme dva PHP súbory, do jedného súboru „dáme“ triedu na vytvorenie spojenia s databázou a do druhého budeme pracovať s touto triedou.

Vytvorme dva súbory:

  • index.php;
  • database.class.php;

Myslím, že už nie sme malé deti a vieme, čo potrebujeme na prácu s PHP súbormi. Nainštalovaný webový server Apache, PHP, MySQL DBMS a vie, kam tieto súbory umiestniť - (pre tých, ktorí to nevedia alebo zabudli).

Súbor, v ktorom je trieda uložená, dám do samostatného súboru a pomenujem ho vo formáte: názov triedy.trieda.php a viem, čo je v tomto súbore uložené. Keď je v projekte veľa tried, môžete sa stratiť, preto odporúčam pomenovať súbory s triedami vo formáte popísanom vyššie.

Súbor Database.class.php:

Poďme sa teraz pozrieť na to, čo v tomto kroku vzniklo. Kľúčovým slovom "class", názvom triedy - DataBase a zloženými zátvorkami sme vytvorili telo triedy. Vo vytvorenej triede máme vytvorené dve vlastnosti, v $ mConnect - kde je uložený výsledok pripojenia k databáze a $ mSelectDB - kde je uložený výsledok výberu databázy. Možno ste si všimli kľúčové slová v každej nehnuteľnosti – verejnej aj statickej. O čom hovoria? Verejná znamená, že vlastnosť je prístupná zvonka triedy, zatiaľ čo statická umožňuje pristupovať alebo volať vlastnosť bez vytvárania inštancie triedy, čo je veľmi často pohodlné na použitie.

Pridajme metódu Connect () na vytvorenie pripojenia k základni:

".mysql_error ()."

"; exit (); return false;) // Vráti výsledok return self :: $ mConnect;))?>

  • $ host - IP adresa servera, na lokálnom PC je to localhost;
  • užívateľ - meno užívateľa databázy;
  • $ pass - heslo používateľa databázy;
  • $ name - názov databázy, ku ktorej sa pripájame;

Funkcia mysql_connect () vytvorí pripojenie k databáze a uloží výsledok do $ mConnect. Nasleduje kontrola s konštruktom IF: Ak pripojenie nebolo úspešné, zobrazí sa chybové hlásenie... V opačnom prípade bude PHP ignorovať blok IF a pokračovať vo výbere databázy. Funkcia mysql_select_db () vyberie názov databázy, ak požadovaná databáza v databáze neexistuje, v tomto prípade program informuje užívateľa o chybe. Ak všetko pôjde dobre, pripojenie k databáze vráti návrat.

Pridajte metódu Close ():

Ľutujeme, nedá sa pripojiť k serveru MySQL

"; exit (); return false;) // Pokus o výber databázy self :: $ mSelectDB = mysql_select_db ($ name, self :: $ mConnect); // Ak nie je vybratá žiadna databáza, zobrazí sa chybové hlásenie .. ak ( ! self :: $ mSelectDB) (echo "

".mysql_error ()."

"; exit (); return false;) // Vráti výsledok return self :: $ mConnect;) // Metóda zatvorí spojenie s databázou verejná statická funkcia Close () (// Vráti výsledok return mysql_close (self : : $ mConnect) ;))?>

Ďalšia a posledná metóda v tejto triede, Close (), zatvorí pripojenie k databáze, funkcia mysql_close () zatvorí pripojenie k serveru MySQL a vráti výsledok.

súbor index.php:

Pomocou funkcie define () sme vytvorili konštanty na uloženie parametrov databázového pripojenia. Require_once spája našu triedu DataBase so súborom index.php.

Spomeňme si na kľúčové slovo static, ktoré bolo použité v triede DataBase vo vlastnostiach a metódach tejto triedy. To nám umožňuje prístup k vlastnostiam a metódam triedy cez "::" (dve dvojbodky). Metóda DataBase :: Connect (DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE), preberá 4 parametre - konštanty vytvorené funkciou define (), ktoré uchovávajú informácie o pripojení k databáze. Ak je pripojenie úspešné, metóda Connect () nám vráti pripojenie k databáze. Potom budeme môcť pracovať a vykonávať dotazy do databázy. Funkcia Mysql_query () - Vykoná databázový dotaz. Funkcia Mysql_fetch_assoc () - spracuje riadok výsledku dotazu a vráti asociatívne pole. Príkaz echo zobrazuje verziu servera MySQL. A nakoniec, metóda DataBase :: Close () zatvorí spojenie s databázou.

S php...

Vytváranie databázového pripojenia v PHP rôznymi spôsobmi:

1) starý staromódny spôsob pripojenia k MySQL:

$ conn = mysql_connect ($ db_hostname, $ db_username, $ db_password) alebo zomrieť ("Žiadne pripojenie k serveru");
mysql_select_db ($ db_database, $ conn) alebo die ("Nepodarilo sa pripojiť k databáze");

Vysvetlenia premenných sú uvedené nižšie.

V tomto prípade sa používajú nasledujúce funkcie:

  • mysql_connect ()- pripojiť sa k serveru;
  • mysql_select_db ()- pripojiť sa k databáze;

Zároveň neustále kontrolujeme chyby týmto spôsobom: alebo zomrieť ("Taká chyba"); - preložené ako alebo zomrieť s takou a takou chybou - aby sa okamžite zistilo, kde je chyba.

config.php

// premenné na pripojenie k databáze
$ host = "localhost"; / hostiteľ
$ username = "root"; // heslo pre pripojenie k databáze
$ heslo = ""; // heslo pre pripojenie k databáze - na lokálnom počítači môže byť prázdne.
$ database_name = "my-dolgi"; // názov databázy

// starý spôsob pripojenia k databáze
mysql_connect ($ hostiteľ, $ používateľské meno, $ heslo) alebo zomrieť ("Nedá sa pripojiť na vytvorenie pripojenia");

// vyberte databázu. Ak sa vyskytne chyba, vytlačte
mysql_select_db ($ názov_databázy) alebo zomrieť (mysql_error ());

index.php

require_once "config.php";


$ vysledok = mysql_query ("SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5") or die (mysql_error ());



";


while ($ riadok = mysql_fetch_assoc ($ výsledok)) (
";
}


mysql_free_result ($ výsledok);

// Zatvorte spojenie
mysql_close ();

2) Progresívnejší procedurálny štýl - pripojenie k databáze pomocou mysqli:

Tadiaľto:

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

Príklad pripojenia k databáze v php s výberom z tabuľky

config.php

// pripojenie k db
$ link = mysqli_connect ("localhost", "username", "password", "name-database"); // tu zadáme vaše priame údaje: užívateľské meno, heslo a názov databázy, prvé pole je zvyčajne localhost

// chyba výstupného pripojenia
ak (! odkaz $) (
echo "Chyba pri pripájaní k databáze. Kód chyby:". mysqli_connect_error ();
východ;
}

Upozorňujeme, že mysqli sa používa všade, nie mysql !!!

index.php

require_once "config.php";

// Vykonať požiadavku. Ak sa vyskytne chyba, vytlačte
if ($ výsledok = mysqli_query($ odkaz,"VYBERTE meno, peniaze OD Dolg ORDER BY Money DESC LIMIT 5")) (

Echo „Koho mám zostúpiť:

";

// Načítavanie výsledkov dotazu
pričom ($ riadok = mysqli_fetch_assoc(výsledok $)) (
echo $ riadok ["Názov"]. „s dlhom“. $ riadok ["Peniaze"]. „ruble.
";
}

// uvoľnenie použitej pamäte
mysqli_free_result(výsledok $);

// Zatvorte spojenie
mysqli_close($ odkaz);
}

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

3) Objektovo orientovaný spôsob pripojenia k databáze MySQL - pomocou metód a tried:

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

Plusy: stručnosť a pohodlie pre skúsených programátorov.

$ conn = new mysqli ($ db_hostname, $ db_username, $ db_password, $ db_database);
if ($ conn-> connect_errno) (
die ($ conn-> connect_error);
) else (echo „Pripojenie k databáze úspešne nadviazané“;)

tu je v zásade všetko intuitívne jasné:

  • $ db_hostname je hostiteľ(väčšinou localhost),
  • $ db_database - Názov DB;
  • $ db_username a $ db_password sú používateľské meno a heslo!

Príklad pripojenia k databáze v štýle php OOP s výberom z tabuľky

config.php

// pripojenie k db
$ mysqli = new mysqli („localhost“, „username“, „password“, „name-database“); // tu zadáme vaše priame údaje: užívateľské meno, heslo a názov databázy, prvé pole je zvyčajne localhost

// chyba výstupného pripojenia
if ($ mysqli-> connect_error) (
die ("Chyba pri pripájaní k databáze: (. $ mysqli-> connect_errno. ")". mysqli_connect_error);
}

Upozorňujeme, že mysqli sa používa všade, nie mysql !!! a na rozdiel od predchádzajúcej metódy sa zobrazia šípky "->", ktoré označujú, že ide o štýl OOP.

index.php

require_once "config.php";

// Vykonať požiadavku. Ak sa vyskytne chyba, vytlačte
if ($ výsledok = $ mysqli-> dotaz("VYBERTE meno, peniaze OD Dolg ORDER BY Money DESC LIMIT 5")) (

Echo „Koho mám zostúpiť:

";

// Načítavanie výsledkov dotazu
while ($ riadok = $ výsledok-> fetch_assoc()) {
echo $ riadok ["Názov"]. „s dlhom“. $ riadok ["Peniaze"]. „ruble.
";
}

// uvoľnenie použitej pamäte
$výsledok-> zavrieť ();

// Zatvorte spojenie
$mysqli-> zavrieť();
}

Vašou úlohou je nájsť rozdiely.

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

Pri pripájaní k databáze MySQL sa používajú pripravené príkazy (metódou Prepare) a vo výsledku je to bezpečnejšie a výrazne zvyšuje výkon.

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

index.php

// Štýl PDO pre komunikáciu MySQL
if ($ stmt = $ mysqli-> pripraviť ("VYBERTE meno, Voney FROM Dolg ORDER BY Money< ? LIMIT 5")) {

$ stmt-> bind_param ("i", $ summa);
$ summa = 100 000;

// spustenie vykonávania
$ stmt-> vykonat ();

// Deklarovanie premenných pre pripravené hodnoty
$ stmt-> bind_result ($ col1, $ col2);

Echo „Koho mám zostúpiť:

";

// Načítavanie výsledkov dotazu
while ($ stmt-> fetch ()) (
echo $ col1. „s dlhom“. $ col2. „ruble.
";
}

// uvoľnenie použitej pamäte
$ stmt-> close ();

// Zatvorte spojenie
$ mysqli-> close ();

Ako vidíte, tu je to oveľa náročnejšie a treba si naštudovať CHOP - toto je samostatná téma.

3 spôsoby pripojenia k MySQL pomocou PHP s príkladmi kódu


Ak chcete začať používať databázu MySQL, musíte najprv pochopiť, ako sa pripojiť z vášho vlastného PHP programu (skriptu) k tej istej databáze MySQL.

Tento článok popisuje nasledujúce tri metódy spolu s príslušnými príkladmi kódu PHP, ktoré vysvetľujú, ako sa pripojiť k databáze z PHP.

Pre všetky nižšie uvedené príklady sa budeme pripájať k už existujúcej databáze MySQL. Poznámka: Všetko vysvetlené tu bude fungovať s MariaDB aj s MySQL.

1. Pripojenie k PHP pomocou rozšírenia mysqli
*mysqli je skratka pre MySQL Improved

Vytvorte nasledujúci súbor mysqli.php

connect_error) (die ("Chyba: nemožno sa pripojiť:". $ conn-> connect_error);) echo "Pripojené k databáze.
"; $ result = $ conn-> dotaz (" SELECT id FROM goroda "); echo" Počet riadkov: $ result-> num_rows "; $ result-> close (); $ conn-> close ();?> B vo vyššie uvedenom kóde:

  • mysqli – Táto funkcia spustí nové pripojenie pomocou rozšírenia mysqli. Funkcia má štyri argumenty:
    1. localhost je názov hostiteľa, na ktorom je spustená databáza MySQL
    2. meno – používateľské meno MySQL na pripojenie
    3. pass - heslo pre používateľa mysql
    4. db – MySQL databáza, ku ktorej sa chcete pripojiť.
  • qvery je funkcia dotazovania MySQL. V tomto príklade vyberieme stĺpec id z databázy mesta.
  • Nakoniec ukážeme počet riadkov načítaných pomocou premennej num_rows vo výsledku. Tiež uzavrieme výsledok aj premennú spojenia, ako je uvedené vyššie.
Keď z prehliadača zavoláte vyššie uvedený súbor mysqli.php, uvidíte nasledujúci výstup, ktorý naznačuje, že PHP sa dokázalo pripojiť k databáze MySQL a získať údaje.

Pripojili sme sa k základni. Počet riadkov: 6 2. Pripojenie z PHP MySQL PDO Extension
*PDO je skratka pre PHP Data Objects

Ovládač PDO_MYSQL implementuje rozhranie PDO poskytované PHP na pripojenie z vášho PHP skriptu k databáze MySQL.

Vytvorte nasledujúci súbor mysql-pdo.php:

setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION); echo "Pripojené k databáze.
"; $ sql =" SELECT id FROM goroda "; print" Zoznam id:
"; foreach ($ conn-> dotaz ($ sql) ako $ riadok) (tlač $ riadok [" id "]."
";) $ conn = null;) catch (PDOException $ err) (echo" Chyba: nemožno sa pripojiť: ". $ err-> getMessage ();)?> Vo vyššie uvedenom:

  • nový PDO - vytvorí nový objekt PDO, ktorý bude mať nasledujúce tri argumenty:
    1. reťazec pripojenia mysql: bude vo formáte "mysql: host = localhost; dbname = db". Vo vyššie uvedenom príklade db beží na localhost a pripájame sa k databáze db.
    2. Používateľské meno MySQL na pripojenie
    3. Heslo pre používateľa mysql
  • premenná $ sql - vytvorte dotaz SQL, ktorý chcete vykonať. V tomto príklade vyberieme stĺpec id z tabuľky miest.
  • dotaz ($ sql). Tu vykonávame dotaz SQL, ktorý sme práve vytvorili.
  • pre každý. Tu iterujeme výsledok z vyššie uvedeného príkazu dotazu a uložíme ho do premennej riadka $, potom ho odznieme.
  • V MySQL PDO na zatvorenie pripojenia jednoducho nastavte premennú $ conn na hodnotu null.
Keď zavoláte vyššie uvedený skript mysqli.php z vášho prehliadača, uvidíte nasledujúce riadky; znamenajú, že PHP sa dokázalo pripojiť k databáze MySQL a získať informácie:

Pripojili sme sa k základni. ID zoznamu: 1 2 3 4 5 6 3. Pripojenie z PHP c pomocou zastaraných funkcií mysql

Túto metódu použite iba vtedy, ak používate staršiu verziu PHP a z nejakého dôvodu nemôžete aktualizovať na novšiu verziu. Namiesto tejto metódy sa odporúča použiť metódu č. 2 a metódu č. 3 uvedenú vyššie. Túto metódu som zahrnul iba ako referenciu, nie ako odporúčanie na použitie.

Toto konkrétne rozšírenie bolo od PHP 5.5 zastarané. Ale od PHP 7.0 to ani nebude fungovať, pretože to bolo odstránené. Od PHP 5.5, keď použijete tieto funkcie, vygeneruje sa chyba E_DEPRECATED.

Vytvorte súbor mysql.php:

"; $ result = mysql_query (" SELECT id FROM goroda "); $ row = mysql_fetch_row ($ výsledok); echo" id 1: ", $ riadok,"
\ n "; mysql_close ($ conn);?> Vo vyššie uvedenom:

  • Mysql_connect má tri argumenty:
    1. názov hostiteľa, na ktorom je spustená databáza MySQL;
    2. MySQL užívateľské meno na pripojenie;
    3. heslo pre používateľa mysql. Tu sa pomocou používateľského mena a hesla pripojí k databáze MySQL, ktorá beží na lokálnom serveri.
  • Funkcia Mysql_select_db. Ako už názov napovedá, vyberie si databázu, ku ktorej sa chcete pripojiť. Ekvivalent príkazu „použitie“. V tomto príklade sa pripájame k databáze db.
  • Funkcia Mysql_query – Používa sa na zadanie vášho dopytu MySQL. V tomto príklade vyberieme stĺpec id z databázy mesta.
  • 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.
Keď z prehliadača zavoláte vyššie uvedený súbor mysql-legacy.php, uvidíte nasledujúci výstup, ktorý naznačuje, že PHP sa dokázalo pripojiť k databáze MySQL a získať informácie:

Pripojili sme sa k základni. id 1: 1 Takto sa môžete pripojiť k MySQL. Opäť je lepšie použiť prvé dve metódy; O