MySQL dotazuje příklady v php. SQL - dotazy a jejich zpracování pomocí PHP

PRÁCE S DATABÁZE MySQL S PHP

Přednáška. Připravil VS Prokhorov


1. PŘIPOJENÍ SCENÁŘŮ PHP K tabulkám MySQL

Podívejme se na nejčastěji používané funkce, které vám umožňují pracovat s databází MySQL pomocí PHP.

Při interakci PHP a MySQL program interaguje s DBMS prostřednictvím sady funkcí.

1.1 Připojení k serveru. Funkcemysql_connect

Před prací s databází je třeba ji nainstalovat internetové připojení, jakož i autorizovat uživatele. To se provádí pomocí funkce mysql_connect ().

zdroj mysql_connect (]])

Tato funkce naváže síťové připojení k databázi MySQL umístěné na hostiteli $ serveru (ve výchozím nastavení se jedná o localhost, tj. Aktuální počítač) a vrátí identifikátor otevřeného připojení. Všechny další práce se provádějí s tímto identifikátorem. Všechny ostatní funkce, které berou tento identifikátor (deskriptor) jako argument, jedinečně identifikují vybranou databázi. Při registraci je zadáno uživatelské jméno $ uživatelské jméno a heslo $ heslo (ve výchozím nastavení uživatelské jméno, ze kterého je spuštěn aktuální proces - při ladění skriptů: root a prázdné heslo):

$ dbpasswd = ""; //Heslo

// Zobrazí varování

echo ("

");

Proměnné $ dblocation, $ dbuser a $ dbpasswd ukládají název serveru, uživatelské jméno a heslo.

1.2 Odpojení od serveru. Funkcemysql_close

Připojení k serveru MySQL bude automaticky ukončeno po ukončení skriptu nebo při volání funkce mysql_close

bool mysql_close ()

Tato funkce přeruší připojení k serveru MySQL a vrátí true, pokud je operace úspěšná, a false jinak. Funkce bere jako argument popisovač databázového připojení vráceného funkcí mysql_connect.

$ dblocation = "localhost"; // Název serveru

$ dbuser = "root"; // Uživatelské jméno

$ dbpasswd = ""; //Heslo

// Připojte se k databázovému serveru

// Před voláním funkce potlačte chybový výstup symbolem @

$ dbcnx = @ mysql_connect ($ dblocation, $ dbuser, $ dbpasswd);

if (! $ dbcnx) // Pokud je popisovač 0, připojení není navázáno

// Zobrazí varování

echo ("

B v současné době databázový server není k dispozici, takže stránku nelze správně zobrazit.");

if (mysql_close ($ dbcnx)) // zavřít připojení

echo ("Připojení k databázi ukončeno");

echo ("Nelze dokončit připojení");

1.3 Vytvoření databáze. Funkce CREATE DATABASE

Příkaz - vytvoření databáze je k dispozici pouze správci serveru a na většině hostování jej nelze provést:

VYTVOŘIT DATABÁZE Název databáze

Vytvoří novou databázi s názvem DatabaseName.

Příklad práce s touto funkcí:

@mysql_query ("VYTVOŘIT DATABÁZE $ dbname");

Doporučuje se používat apostrofy („příkaz SQL“) všude jako oddělovače řádků obsahujících příkazy SQL. To může zajistit, že žádná proměnná $ nebude náhodně interpolována (tj. Nebude nahrazena její hodnotou) a zvýší se bezpečnost skriptů.

Příkaz CREATE DATABASE pro vytvoření databáze je k dispozici pouze superuživateli a na většině hostitelských webů je pro běžného uživatele nemožné jej spustit. Je k dispozici pouze správci serveru.

Pro experimentování vytvořme databázi testbase spuštěním dotazu SQL z příkazového řádku. Chcete-li to provést, musíte se přihlásit k MySQL a zadat příkazový řádek MySQL:

mysql> vytvořit databázi testbase;

Poté byste měli zadat:

mysql> použít testbase;

Databáze vytvořena:


1.4 Výběr databáze. Funkcemysql_select_db

Před odesláním prvního dotazu na server MySQL musíte určit, s jakou databází budeme pracovat. Funkce mysql_select_db je určena pro toto:

bool mysql_select_db (řetězec $ database_name [, zdroj $ link_identifier])

Upozorňuje PHP, že další operace s připojením $ link_identifier budou používat databázi $ database_name.

Použití této funkce je ekvivalentní volání příkazu use v dotazu SQL, to znamená, že funkce mysql_select_db vybere databázi pro další práci a všechny následující dotazy SQL se použijí na vybranou databázi. Funkce bere jako argumenty název databáze k výběru, název_databáze a prostředek deskriptoru připojení. Funkce vrací true, pokud je operace úspěšná, a false jinak:

// Kód připojení k databázi

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

// Zobrazí varování

echo ("

Databáze aktuálně není k dispozici, takže stránku nelze správně zobrazit.");

1.5 Zpracování chyb

Pokud v průběhu práce s MySQL dojde k chybám (například závorky nejsou v dotazu vyvážené nebo není k dispozici dostatek parametrů), je možné chybovou zprávu a její počet získat pomocí následujících dvou funkcí.

Je důležité tyto funkce používat opatrně a včas, protože jinak může být obtížné ladit skripty.

● Funkce:

int mysql_errno ()

vrátí číslo poslední zaznamenané chyby. Identifikátor připojení $ link_identifier lze vynechat, pokud bylo během operace skriptu navázáno pouze jedno připojení.

● Funkce:

řetězec mysql_error ()

nevrací číslo, ale řetězec obsahující text chybové zprávy. Je to užitečné pro účely ladění. Obvykle se mysql_error používá ve spojení s konstrukcí or die (), například:

@mysql_connect ("localhost", "uživatel", "heslo")

or die ("Chyba při připojování k databázi:" .mysql_error ());

Operátor @ jako obvykle slouží k potlačení standardního varování, které může nastat v případě chyby.

V nejnovější verze Varování PHP nejsou ve funkcích MySQL ve výchozím nastavení zaznamenána.

1.6 Automatizace připojení k MySQL. Soubor (config.php)

Obvykle je na webu několik skriptů, které potřebují přístup ke stejné databázi.

Doporučuje se zvýraznit kód odpovědný za připojení k MySQL v samostatný soubor a poté se připojte pomocí funkce include k potřebné skripty.

Je logické umístit funkce pro připojení, výběr a vytvoření databáze do stejného souboru (config.php), kde jsou deklarovány proměnné se jménem serveru $ dblocation, uživatelské jméno $ dbuser, heslo $ dbpasswd a název databáze $ dbname:

Výpis config.php:

//config.php kód souboru obsahující parametry pro připojení k serveru a výběr databáze

// vytiskne chybové zprávy o připojení do prohlížeče

$ dblocation = "localhost"; // Název serveru

$ dbname = "vložte název databáze" // Název databáze: vytvořen nebo již existuje

$ dbuser = "root"; // Uživatelské jméno databáze

$ dbpasswd = ""; //Heslo

// Připojte se k databázovému serveru

// Před voláním funkce potlačte chybový výstup symbolem @

[chráněno e-mailem] _connect ($ dblocation, $ dbuser, $ dbpasswd);

if (! $ dbcnx) // Pokud je popisovač 0, připojení k databázovému serveru není navázáno

// Zobrazí varování

echo ("

Databázový server aktuálně není k dispozici, takže stránku nelze správně zobrazit.

");

// Vytvořit databázi $ dbname - to může udělat pouze superuživatel

// Pokud databáze již existuje, dojde k nezávažné chybě

@mysql_query ("VYTVOŘIT DATABÁZE, pokud neexistuje $ dbname ');

// Kód pro připojení k databázi: jednoznačně vybereme nově vytvořenou databázi nebo existující databázi

// Před voláním funkce potlačte chybový výstup symbolem @

pokud ( [chráněno e-mailem] _select_db ($ dbname, $ dbcnx)) // Pokud je deskriptor 0, není navázáno žádné připojení k databázi

// Zobrazí varování

echo ("

Databáze aktuálně není k dispozici, takže stránku nelze správně zobrazit.

");

// Malý pomocná funkce který vytiskne zprávu

// o chybě v případě chyby dotazu na databázi

funkce puterror (zpráva $)

echo ("");


2. VYPLNĚNÍ ŽÁDOSTÍ O DATABÁZE

2.1 Vytvoření tabulky. FunkceVYTVOŘIT TABULKU:

VYTVOŘIT TABULKU Název tabulky (typ FieldName, Type FieldName,)

Tento příkaz vytvoří novou tabulku v databázi se sloupci (poli) definovanými jejich názvy (FieldName) a zadanými typy. Po vytvoření tabulky můžete do ní přidat záznamy sestávající z polí uvedených v tomto příkazu.

Výpis test_11.php. Program, který vytvoří novou tabulku v databázi:

include "config.php"; // Připojte se k serveru a vyberte databázi

mysql_query ("VYTVOŘIT TABULKU, pokud neexistují lidé

id INT AUTO_INCREMENT PRIMARY KEY,

nebo zemřít („chyba MySQL:“ .mysql_error ());


Tento skript vytvoří novou tabulku osob se dvěma poli. První pole je typu INT (celé číslo) a název je id. Druhým je typ TEXT (textový řetězec) a název jména.

Pokud tabulka existuje, nebo die () vystřelí.

Volitelná klauzule if there neexistuje, pokud je zadána, říká serveru MySQL, aby negeneroval chybovou zprávu, pokud tabulka se zadaným názvem již v databázi existuje.

Vzpomínám si na dny, kdy jsem nevěděl, co to je mysql a často takové články hledal na internetu. Ale z nějakého důvodu byly zřídka nalezeny. Nyní jsem se rozhodl zveřejnit takové užitečné články o mysql a php se stal ještě jedním. Pokusím se vše napsat v přístupném jazyce.

začínáme s mysql a php

Nejprve tedy potřebujeme místní server, abychom mohli běžet skripty php a připojit se k databázi (dále budu nazývat databázi, což znamená „databáze“). Pokud ještě nemáte místní server, měli byste si nejprve přečíst Instalace a konfigurace localhost a poté začněte studovat databázi mysql a jeho DBMS (nástroj pro správu databáze).

Pokud tento server již máte, uděláme to. Nejprve vám chci představit DBMS PhpMyAdmin, umožňuje vám spravovat (přidávat, mazat, měnit) záznamy v databázi.

Toto je domovská stránka PhpMyAdmin DBMS... Odtud můžete vytvořit vlastní databázi a uložit do ní potřebné záznamy. To je velmi výhodné při vytváření webů, protože informace jsou strukturované a můžete velmi rychle získat jakýkoli záznam z databáze.

Jak již bylo zmíněno, první část článku, seznámení s mysql a phpmyadmin... Myslím, že teď chápete, co je mysql, a můžeme začít zkoumat funkčnost phpmyadminu. Nejprve musíme vytvořit samotnou databázi (databázi). Bude mít své vlastní jméno, podle kterého ji potom budeme hledat.

Zde je obecná struktura struktury databáze:

Chcete-li vytvořit databázi, zadejte libovolný název (ne cyrilici!) Pro budoucí databázi do vstupního pole pod řádkem „Vytvořit novou databázi“ (na hlavní stránce PhpMyAdmin). Vytvořím databázi s názvem „baza“. Nyní, podle schématu struktury databáze, musíme vytvořit tabulku. Chcete-li to provést, po vytvoření základny budete mít následující okno:

Tady jsem vytvoření tabulky s názvem uživatelé a 3 pole v něm. Dále nás phpmyadmin požádá, abychom definovali strukturu pro každé pole:

Zde ve sloupci „Pole“ musíte zadat název, v poli „Typ“ určit typ dat, která se tam budou ukládat (INT je číslo, VARCHAR je řetězec nebo malý (!) Text). V poli „Další“ označíme parametr „id“ do pole „id“, což znamená, že se zvýší při každém vložení dat, a nastavíme na něj parametr „Primární klíč“ (zaokrouhlit), to znamená, že v prvním sloupci můžeme jednoznačně identifikovat pole.

„Jednoznačně identifikovat pole“ znamená, že i když jsou křestní a příjmení stejná, sloupec „id“ bude mít různé hodnoty (protože se pokaždé automaticky zvýší o jednu).

Nyní klikněte na „Uložit“. Vytvořili jsme tedy tabulku uživatelů, do které můžeme ukládat jméno a příjmení (není třeba vložit id, vše za nás udělá mysql), v databázi uživatelů. Vytvořili jsme tabulku pro ukládání záznamů. A jak je tam vložit? Přečtěte si níže 😉

Vyberte nabídku „Vložit“ a do požadovaných polí napište požadované hodnoty. Nyní, jak odstranit nebo změnit hodnoty v databázi mysql pomocí PhpMyAdmin ... Chcete-li odstranit, jednoduše přejděte do nabídky Procházet a klikněte na červený křížek vedle položky:

Chcete-li upravit, klikněte na tužku a nahraďte požadovaná pole. Tato lekce skončila. Nyní můžete spravovat databázi mysql pomocí PhpMyAdmin. V další lekci vás naučím, jak ukládat, přijímat, mazat a aktualizovat data v databázi. pomocí php... Je to velmi pohodlné a praktické.

Práce s databází mysql z php

Nejprve se tedy musíte naučit, jak se připojit k již známé databázi. K tomu se používá následující kód:

Ve výše uvedeném kódu jsem se připojil k serveru localhost pomocí přihlášení vykořenit který nevyžaduje heslo (proto jej nezadáváme). Po připojení k databázi můžeme provádět všechny ty operace, které byly provedeny v phpmyadmin DBMS. To znamená vkládání, mazání, úpravy a načítání různých informací. Teď, bod po bodu:

Vkládání záznamů do databáze SQL v php

$ query = "INSERT INTO` table` (` uveďte pole`, `uveďte pole`) HODNOTY (" libovolná hodnota "," libovolná hodnota ")"; $ result = mysql_query ($ dotaz); if ($ result == true) (echo "Úspěch!";) else (echo "Chyba!
".mysql_error ();)

To znamená, že vložení se provádí pomocí funkce INSERT. Pokud vše proběhlo dobře, pak mysql vrátí true, jinak - false.

Můžete určit alespoň kolik polí, hlavní je, že všechna existují v databázi. To znamená, že například existuje tabulka, ve které jsou pole „jméno“, „příjmení“ a „město“. K vložení hodnot do něj použijeme následující kód:

$ query = "INSERT INTO` users` (` name`, `surname`,` city`) VALUES ("Ruslan", "Huzin", "Kokshetau") "; $ result = mysql_query ($ dotaz); if ($ result == true) (echo "Úspěch!";) else (echo "Chyba!
".mysql_error ();)

Mazání záznamů z SQL databáze v php

Odstranění se provádí funkcí DELETE. K tomu bude něco jako tento kód:

$ query = "ODSTRANIT OD" uživatelů` WHERE `name` =" Ruslan ""; $ result = mysql_query ($ dotaz); if ($ result == true) (echo "Úspěch!";) else (echo "Chyba!
".mysql_error ();)

To znamená, že odstraníme všechny řádky z tabulky uživatelů (dobře, nebo jedna), kde se sloupec s názvem rovná hodnotě Ruslan.

Změna hodnot v databázi MySQL v php

Můžeme také provést změny u existujících záznamů v tabulce. Například chceme nahradit hodnotu sloupce jména v řádku, kde je sloupec příjmení Huzin. K tomu provedeme následující kód:

$ query = "UPDATE` users` SET` name` = "moje jméno" WHERE` příjmení` = "Huzin" "; $ result = mysql_query ($ dotaz); if ($ result == true) (echo "Úspěch!";) else (echo "Chyba!
".mysql_error ();)

Načítání hodnot z databáze

Nyní přichází ta zábavná část. Protože jsme něco nahráli, neměli bychom to dostat zpět? Například potřebujeme získat celý řádek z tabulky uživatelů, kde je sloupec s názvem Ruslan. K tomu potřebujeme mírně odlišný kód než v prvních příkladech. Tady je ve skutečnosti:

$ query = "SELECT * FROM WHERE` name` =" Ruslan ""; $ result = mysql_query ($ dotaz); if ($ result == true) (echo "Úspěch!";) else (echo "Chyba!
".mysql_error ();) $ data = mysql_fetch_array ($ result); / * Nyní proměnná ukládá data z tabulky * /

Zde jsme potřebovali ještě jednu funkci pro zápis vybraných dat do proměnné (pole) v php. Abychom odkazovali na vybraný řádek, píšeme takto:

$ data ["název sloupce"]

to znamená, abychom získali příjmení z vybraného řádku (kde bylo jméno Ruslan), musíme zapsat na výstup:

echo $ data ["příjmení"];

A při výběru z tabulky napsali SELECT *, tato hvězdička znamená, že musíte vybrat všechny sloupce z řádku. Pokud například potřebujeme vybrat pouze příjmení, napíšeme SELECT `příjmení`. Chcete-li vybrat několik řádků z tabulky najednou, budete také potřebovat smyčku k jejich zobrazení. To je například v případě, že ve sloupci Ruslan bude několik řádků. Zde je kód:

$ query = "SELECT * FROM WHERE` name` =" Ruslan ""; $ result = mysql_query ($ dotaz); while ($ data = mysql_fetch_array ($ result)) (echo $ data ["name"]. "
". $ data [" příjmení "]."


"; }

Nyní se zobrazí všechny řádky, jejichž sloupec se rovná hodnotě Ruslan.

Nyní jste splnili základní ovládací funkce. databáze MySQL přímo z php skript.

V tomto článku se dozvíme posílat dotazy do databáze přes PHP... Tento článek je velmi důležitý a musíte mu porozumět. Ujišťuji vás však - materiál je velmi jednoduchý, takže by neměly být žádné potíže.

Než přejdu k tématu článku, předem vás varuji, že nebudu podrobně analyzovat Jazyk SQL... Všechny potřebné informace jsou seřazeny v kategorii vyhrazené, a tady jsme jen práce s MySQL přes PHP.

Nyní přejdeme k zasílání databázových dotazů v PHP:


}
$ mysqli-> query ("INSERT INTO mytable (name, email) VALUES (" MyName "," [chráněno e-mailem]")");
$ mysqli-> close ();
?>

V tomto příkladu jsme se připojili k databázi, zkontrolovali jsme, že připojení bylo úspěšné, a odeslali jsme požadavek pomocí metody dotaz () a pak zavřel spojení. Jak vidíte, vše je velmi jednoduché. Odeslat jakékoli SQL dotazy stačí jen jedna metoda - dotaz (), takže v tomto případě je všechno šíleně jednoduché.

Nyní si úkol trochu zkomplikujme. Pojďme s vámi analyzovat požadavky, které se vracejí result_set- výsledek. Nejoblíbenější návrat dotazu result_set je výběr dat z tabulky. V následujícím příkladu s vámi provedeme výběr dat a poté zobrazíme výsledek:

$ mysqli = @new mysqli ("localhost", "Admin", "pass", "mybase");
if (mysqli_connect_errno ()) (
echo "Nelze se připojit:" .mysqli_connect_error ();
}
$ result_set = $ mysqli->
while ($ row = $ result_set-> fetch_assoc ()) (
print_r (řádek $);
ozvěna "
";
}
$ result_set-> close ();
$ mysqli-> close ();
?>

Nejprve trochu vysvětlím, o co jde. result_set. Result_set je tabulka s výsledkem. Tato tabulka obsahuje sadu záznamů (řádky tabulky). Chcete-li zobrazit všechny záznamy, musíte iterovat každý řádek tabulky a zobrazit ji. A teď vysvětlím příklad: po odeslání žádosti jsme se vytvořili result_set... Potom ve smyčce přiřadíme proměnné řádek hodnota dalšího řádku, tj. jednorozměrné pole, které metoda vrací fetch_assoc ()... Když dojdou všechny řádky, metoda fetch_assoc () vrátí se Nepravdivé a smyčka bude ukončena. Uvnitř smyčky zatímco právě jsme vydali pole pomocí funkce ladění print_r () i když to určitě bylo možné odvodit pomocí pro každého ale teď to není nutné.

Pojďme si stručně shrnout, jak pracovat result_set:

  1. Dostávat result_set odesláním příslušného dotazu do databáze.
  2. Ve smyčce při každé iteraci přiřaďte další řádek (záznam) z result_set pomocí metody fetch_assoc () nějaká proměnná řádek... Pak můžete s touto proměnnou pracovat jako s jednorozměrným asociativním polem, ve kterém jsou klíče názvy polí v tabulce a hodnoty odpovídají aktuálnímu záznamu.
  3. Určitě zavřete result_set metoda zavřít () zvládnout zdroje.

Jak vidíte, metoda fetch_assoc () vždy vrátí další záznam. To znamená, že nejprve 1., potom 2., potom 3. atd. Pokud máte nějaké dobré programátorské zkušenosti, okamžitě uhodnete, že je to způsobeno interním ukazatelem, kterým můžete samozřejmě pohybovat. Kde se používá? Například to lze použít, když potřebujete pracovat result_set ne 1 , ale 2 a vícekrát. Aby se znovu nevytvořil stejný požadavek, můžete jednoduše přesunout ukazatel na začátek. A pak můžete znovu hrubou silou result_set pomocí metody fetch_assoc ().

Chcete-li změnit polohu ukazatele, existuje metoda data_seek () který bere celé číslo z 0 před " počet záznamů - 1"ukazatel přejde na záznam odpovídající parametru:

$ mysqli = @new mysqli ("localhost", "Admin", "pass", "mybase");
if (mysqli_connect_errno ()) (
echo "Nelze se připojit:" .mysqli_connect_error ();
}
$ result_set = $ mysqli-> dotaz ("SELECT * FROM mytable");
$ result_set-> num_rows;
while ($ row = $ result_set-> fetch_assoc ()) (
print_r (řádek $);
ozvěna "
";
}
$ result_set-> data_seek (0);
while ($ row = $ result_set-> fetch_assoc ()) (
print_r (řádek $);
ozvěna "
";
}
$ result_set-> close ();
$ mysqli-> close ();
?>

V tomto příkladu jsme vytvořili výstup počet záznamů v result_set užívání nemovitosti num_rows... A také se seznámil s metodou data_seek ()... To znamená, že jsme iterovali celý výsledek a poté vrátili ukazatel na 0 zaznamenat a znovu iterovat nad výsledkem.

V tomto článku jsme opakovali připojení k databázi a ukončení připojení. A také se naučil jak posílat databázové dotazy přes PHP... Naučil se, jak získat result_set a jak s tím pracovat. To je vše, co potřebujete vědět, abyste byli úspěšní. práce s MySQL v PHP.

Abyste ze své databáze MySQL vytěžili maximum, je důležité pochopit, jak se připojit z vlastního programu PHP k databázi MySQL.

Tento výukový program popisuje následující tři metody spolu s odpovídajícím ukázkovým programem PHP, který vysvětluje, jak se připojit pomocí PHP k databázi.

  • Připojení pomocí rozšíření Mysqli (doporučeno)
  • Připojení PDO (doporučeno)
  • Připojení pomocí starších funkcí mysql_ tradiční (zastaralé)

K tomu je třeba nainstalovat balíček PHP-MySQL.

Na základě distribuce RedHat včetně použijte yum k instalaci PHP-MySQL, jak je uvedeno níže.

Yum nainstalovat php-mysql

V závislosti na vašem systému nainstalujeme nebo aktualizujeme následující závislosti výše:

  • php-cli
  • php-common
  • php-pdo
  • php-pgsql

Jakmile je vše nainstalováno, stránka phpinfo zobrazí modul MySQL, jak je uvedeno níže:

U všech níže uvedených příkladů se budeme připojovat k databázi MySQL, která již existuje. Pokud jste v MySQL nováčkem, je to dobré místo pro začátek :.

Poznámka: Všechno, co je zde popsáno, bude také fungovat s MariaDB, stejně jako s MySQL.

1. Připojení v PHP pomocí rozšíření Mysqli

MySQLi je zkratka pro MySQL Improved.

Pamatujte, že na většině distribucí (např. CentOS) je PHP-MySQLi již součástí balíčku PHP-MySQL. Tímto způsobem nemusíte hledat a instalovat balíček PHP-MySQLi. Vše, co musíte udělat, je nainstalovat balíček PHP-MySQL, aby rozšíření Mysqli fungovalo ve vašem systému.

Vytvořte následující soubor mysqli.php v DocumentRoot v Apache:

connect_error) (die ("Chyba: nelze se připojit:". $ conn-> connect_error);) echo "Připojování k databázi.
"; $ result = $ conn-> dotaz (" VYBRAT jméno OD zaměstnance "); echo" Počet řádků: $ result-> num_rows "; $ result-> close (); $ conn-> close ();?>

Ve výše uvedeném:

  • MySQLi - Tato funkce zahájí nové připojení pomocí rozšíření Mysqli. Tato funkce bude mít čtyři argumenty:
    1. Název hostitele, kde je spuštěna databáze MySQL
    2. Uživatelské jméno připojení MySQL
    3. Heslo pro uživatele mysql
    4. MySQL databáze pro připojení.
  • Funkce dotazu - Slouží k zadání dotazu MySQL. V tomto příkladu vybereme sloupec s názvy z databáze zaměstnanců.
  • Nakonec zobrazíme počet řádků vybraných pomocí proměnné num_rows. Také ukončíme připojení, jak je znázorněno výše.

Připojení k databázi. Počet řádků: 4

Poznámka: Pokud se pokoušíte připojit ke vzdálené databázi MySQL, můžete to udělat, abyste se vyhnuli chybě odepření připojení hostitele: Jak povolit připojení klienta MySQL ke vzdálenému serveru MySQL.

2. Připojení pomocí PHP k MySQL s příponou PDO

PDO znamená PHP Data Objects.

PDO_MYSQL implementuje rozhraní PDO poskytované PHP pro připojení programu k databázi MySQL.

Ve většině linuxových distribucí (např. CentOS a RedHat) je balíček PHP-PDO již obsažen v balíčku PHP-MySQL. Tímto způsobem nemusíte hledat a instalovat balíček PHP-PDO. Vše, co musíte udělat, je nainstalovat balíček PHP-MySQL, aby na vašem systému fungovalo rozšíření PDO_MYSQL PHP.

Vytvořte ve svém Apache DocumentRoot následující soubor MySQL-pdo.php:

setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION); echo "Připojování k databázi.
"; $ sql =" VYBRAT jméno od zaměstnance "; tisk" Jméno zaměstnance:
"; foreach ($ conn-> dotaz ($ sql) jako $ řádek) (tisknout $ řádek [" jméno "]."
";) $ conn = null;) catch (PDOException $ err) (echo" Chyba: nelze se připojit: ". $ err-> getMessage ();)?>

Ve výše uvedeném:

  • new PDO - Vytvoří nový objekt PDO, který bude mít následující tři argumenty:
    1. Řetězec připojení MySQL: bude ve formátu „mysql: host = $ hostname; dbname = $ dbname“. Ve výše uvedeném příkladu je databáze spuštěna na localhost a připojujeme se k databázi grayex.
    2. Uživatelské jméno pro připojení k MySQL.
    3. Heslo pro uživatele mysql.
  • Proměnná $ sql - vytvořte dotaz SQL, který chcete provést. V tomto příkladu vybereme sloupec názvu z tabulky zaměstnanců.
  • dotaz ($ sql) - zde provádíme právě vytvořený dotaz SQL.
  • foreach - zde projdeme výše uvedené příkazy a uložíme je do proměnného řetězce $ a poté je zobrazíme pomocí příkazu print.
  • Chcete-li v MySQL PDO uzavřít připojení, jednoduše nastavte proměnnou $ conn na nulu.

Když zavoláte mysqli.php z vašeho prohlížeče, uvidíte následující výstup, který naznačuje, že se PHP dokázalo připojit k databázi MySQL a načíst data.

Připojení k databázi. Jméno zaměstnance: web slan Maria Oleg

3. Připojení PHP pomocí funkcí mysql_ (zastaralé)

Tuto metodu použijte, pouze pokud používáte starší verzi PHP a z nějakého důvodu nemůžete upgradovat na novější verzi.

Toto je zastaralé rozšíření verze PHP 5.5. Ale počínaje verzí PHP 7.0 to nebude fungovat, protože bylo odstraněno.

Od verze PHP 5.5 budou tyto funkce generovat chybu E_DEPRECATED.

Vytvořte následující soubor MySQL-legacy.php pod Apache DocumentRoot:

"; $ result = mysql_query (" VYBRAT jméno od zaměstnance "); $ row = mysql_fetch_row ($ result); echo" Zaměstnanec 1: ", $ řádek,"
\ n "; mysql_close ($ conn);?>

Ve výše uvedeném:

  • Funkce mysql_connect vyžaduje tři argumenty: 1) název hostitele, kde je spuštěna databáze MySQL, 2) uživatelské jméno pro připojení k MySQL, 3) heslo pro uživatele MySQL. Zde se připojujeme k databázi MySQL spuštěné na místním serveru pomocí uživatelského jména a hesla root.
  • Funkce Mysql_select_db - Jak název napovídá, vybere databázi, ke které se chcete připojit. Toto je ekvivalentní příkazu "use". V tomto příkladu se připojujeme k databázi andreyex.
  • Funkce Mysql_query - použijte k zadání dotazu MySQL. V tomto příkladu vybereme sloupec s názvy z databáze zaměstnanců.
  • mysql_fetch_row - Tuto funkci použijte k načtení řádků z dotazu SQL, který jsme právě vytvořili.
  • Nakonec ukončete připojení pomocí příkazu mysql_close, jak je uvedeno výše.

Když zavoláte MySQL-legacy.php z vašeho prohlížeče, uvidíte následující výstup, který naznačuje, že se PHP dokázalo připojit k databázi MySQL a načíst data.

Připojení k databázi. Zaměstnanec 1: AndreyEx

S php ...

Vytvoření připojení různými způsoby:

1) starý staromódní způsob připojení k MySQL:

$ conn = mysql_connect ($ db_hostname, $ db_username, $ db_password) nebo zemřít ("Žádné připojení k serveru");
mysql_select_db ($ db_database, $ conn) nebo die ("Nepodařilo se připojit k databázi");

Vysvětlení proměnných je uvedeno níže.

V tomto případě se použijí následující funkce:

  • mysql_connect ()- pro připojení k serveru;
  • mysql_select_db ()- připojit se k databázi;

Zároveň neustále kontrolujeme chyby tímto způsobem: or die („Taková chyba“); - přeloženo jako nebo zemřít s takovou a takovou chybou - okamžitě zjistit, kde je chyba.

config.php

// proměnné pro připojení k databázi
$ host = "localhost"; / hostitel
$ username = "root"; // heslo pro připojení k databázi
$ heslo = ""; // heslo pro připojení k databázi - na místním počítači může být prázdné.
$ database_name = "my-dolgi"; // jméno databáze

// starý způsob připojení k databázi
mysql_connect ($ hostitel, $ uživatelské jméno, $ heslo) nebo zemřít („Nelze se připojit k vytvoření připojení“);

// vyberte databázi. Pokud dojde k chybě, vytiskněte
mysql_select_db ($ database_name) nebo die (mysql_error ());

index.php

require_once "config.php";


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



";


while ($ row = mysql_fetch_assoc ($ result)) (
";
}


mysql_free_result ($ výsledek);

// Ukončete připojení
mysql_close ();

2) Progresivnější procedurální styl - připojení k databázi pomocí mysqli:

Tudy:

  1. pohodlné;
  2. až 40krát rychlejší;
  3. zvýšené zabezpečení;
  4. existují nové funkce a funkce;

Příklad připojení k databázi v php s výběrem z tabulky

config.php

// připojení k databázi
$ link = mysqli_connect ("localhost", "uživatelské jméno", "heslo", "databáze jmen"); // zde zadáme vaše přímá data: uživatelské jméno, heslo a název databáze, první pole je obvykle localhost

// zobrazit chybu připojení
if (! $ link) (
echo "Chyba při připojování k databázi. Kód chyby:". mysqli_connect_error ();
výstup;
}

Vezměte prosím na vědomí, že mysqli se používá všude, ne mysql !!!

index.php

require_once "config.php";

// Provést požadavek. Pokud dojde k chybě, vydáme výstup
if ($ výsledek = mysqli_query($ odkaz,„VYBRAT Jméno, peníze Z Dolg OBJEDNAT PENÍZE LIMIT 5“)) (

Echo "Kdo bych měl sestupovat:

";

// Načítání výsledků dotazu
while ($ řádek = mysqli_fetch_assoc($ výsledek)) (
echo $ row ["Jméno"]. "s dluhem". $ řádek [„Peníze“]. "rublů."
";
}

// uvolnění použité paměti
mysqli_free_result($ výsledek);

// Ukončete připojení
mysqli_close($ odkaz);
}

Jak vidíte, některé body se změnily (kurzívou).

3) Objektově orientovaná metoda připojení k databázi MySQL - pomocí metod a tříd:

Nevýhody: Tvrdší a méně náchylné k chybám.

Klady: stručnost a pohodlí pro zkušené programátory.

$ conn = new mysqli ($ db_hostname, $ db_username, $ db_password, $ db_database);
if ($ conn-> connect_errno) (
zemřít ($ conn-> connect_error);
) else (echo "Připojení k databázi bylo úspěšně navázáno";)

zde je v zásadě vše intuitivně jasné:

  • $ db_hostname je hostitel(většinou localhost),
  • $ db_database - Název databáze;
  • $ db_username a $ db_password jsou uživatelské jméno a heslo!

Příklad připojení k databázi ve stylu php OOP s výběrem z tabulky

config.php

// připojení k databázi
$ mysqli = nový mysqli ("localhost", "uživatelské jméno", "heslo", "databáze jmen"); // zde zadáme vaše přímá data: uživatelské jméno, heslo a název databáze, první pole je obvykle localhost

// zobrazit chybu připojení
if ($ mysqli-> connect_error) (
die ("Chyba při připojování k databázi: (". $ mysqli-> connect_errno. ")". mysqli_connect_error);
}

Věnujte pozornost - mysqli se používá všude, ne mysql !!! a na rozdíl od předchozí metody se šipky „->“ označují, že se jedná o styl OOP.

index.php

require_once "config.php";

// Provést požadavek. Pokud dojde k chybě, vydáme výstup
if ($ result = $ mysqli-> dotaz(„VYBRAT Jméno, peníze Z Dolg OBJEDNAT PENĚZ POPIS LIMIT 5“)) (

Echo "Kdo bych měl sestupovat:

";

// Načítání výsledků dotazu
while ($ řádek = $ výsledek-> fetch_assoc()) {
echo $ row ["Jméno"]. "s dluhem". $ řádek [„Peníze“]. "rublů."
";
}

// uvolnění použité paměti
$výsledek-> zavřít ();

// Ukončete připojení
$mysqli-> zavřít();
}

Vaším úkolem je najít rozdíly.

4) Komunikace s databází pomocí CHOP:

Při připojování k databázi MySQL se používají připravené příkazy (metodou přípravy) a ve výsledku je bezpečnější a výrazně zvyšuje výkon.

konfigurační soubor z předchozí metody! - stejné

index.php

// Styl PDO pro komunikaci MySQL
if ($ stmt = $ mysqli-> připravit ("VYBRAT jméno, Voney Z Dolg OBJEDNAT PENĚZ< ? LIMIT 5")) {

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

// zahájit provádění
$ stmt-> execute ();

// Deklarace proměnných pro připravené hodnoty
$ stmt-> bind_result ($ col1, $ col2);

Echo "Kdo bych měl sestupovat:

";

// Načítání výsledků dotazu
while ($ stmt-> fetch ()) (
echo $ col1. "s dluhem". $ col2. "rublů."
";
}

// uvolnění použité paměti
$ stmt-> close ();

// Ukončete připojení
$ mysqli-> close ();

Jak vidíte, zde je to mnohem obtížnější a je nutné studovat CHOP - toto je samostatné téma.