PHP prakticky/Připojení k databázi
Z Wikiknih
V této kapitole se naučíme připojovat k databázi MySQL v PHP a dávat ji příkazy, vše s praktickými příklady.
[editovat] Připojení a výběr databáze
Celé je to velice jednoduché, pokud se chceme připojit stačí zadat:
<?php mysql_connect($localhost, $user, $password); ?>
Místo localhost se zadává adresa serveru, kde se nachází databáze (Na 90% nebudete muset měnit, protože většinou je databáze na stejném počítači/serveru jako webový server.)
Vyjímka je na většině českých free serverech, např. IC.cz, WebZdarma.cz ap. má databázi na subdoméně (mysql.ic.cz, mysql.webzdarma.cz...).
<?php
$localhost = "mysql.webzdarma.cz";
$user = "wikipedia";
$password = "c3bk2pLtaQ5q";
mysql_connect($localhost, $user, $password);
//nebo
mysql_connect("mysql.webzdarma.cz", "wikipedia", "c3bk2pLtaQ5q");
?>
Nelekněte se, že heslo není zašifrováno. PHP skripty jsou uloženy na serveru a tak by se k uživateli nemělo nikdy dostat(bohužel jsou mezi námi i takový jedinci co náši webovou stránku hackují a dostanou se k celému skriptu.)
[editovat] Výběr databáze
Výběr databáze je taky velice jednoduchá záležitost, která se skládá z jedné funkce. Tuto funkci nepoužívejte pokud pracujete s více databázemi najednou.
<?php mysql_select_db($databaze); ?>
Na free serverech dostanete pouze jednu databázi k jedné doméně. Většinou je na free serverech jméno databáze stejné jako přihlašovací jméno (do databáze).
Celý kód pro lepší představu:
<?php
//proměnné pro připojení a výběr databáze
$localhost = "mysql.webzdarma.cz";
$user = "wikipedia";
$password = "c3bk2pLtaQ5q";
$databaze = "wikipedia";
mysql_connect($localhost, $user, $password)
or die("Nepodařilo se připojit do databáze");
//připojíme do databáze, pokud se to nepodaří vypíšeme text
mysql_select_db($databaze)
or die("Nepodařilo se zvolit databázi");
?>
Určitě jste si všimnuli volitelné části or die("..."); zadává se za příkaz připojení a výběru databáze když se to nezdaří. Je to takové zkrácení tohoto kódu:
<?php
if(mysql_connect("localhost", "user", "c3bk2pLtaQ5q")){
echo "Připojení do databáze bylo úspěšné...";
}
else{
exit("Připojení do databáze se nepovedlo!");
}
?>
Pokud se připojujeme do více databází musíme vždy uvést databázi za dotaz:
<?php
//připojení do databáze sem už nebudu vypisovat
$db1 = "wikipedia";
$db2 = "wikibooks";
mysql_query("SELECT * FROM pocitadlo", $db1); //za dotazem musíme vybrat z které databáze chceme
mysql_query("SELECT * FROM uzivatele", $db2); //vybírat, pokud vybíráme z více databazí
//mysql_query si zaslouží vlastní stranu
//... další zpracování...
?>
[editovat] Perzistentní připojení
Pokud vaše webová aplikace běží na velmi vytíženém serveru, kde přichází tisíce SQL dotazů za sekundu. Nebudete chtít aby se pokaždé vytvářelo nové spojení s databází jako to dělá mysql_connect(), proto máme k dispozici funkci mysql_pconnect(). Opět musíme zadat všechny tři potřebné údaje.
<?php
mysql_pconnect("localhost", "user", "password");
mysql_select_db("test");
?>
Toto vám bude k ničemu pokud vaše aplikace poběží na vytíženém serveru, ale pokud je ve verzi Wikipedia:CGI je to zbytečně protože se mysql_pconnect chová jako mysql_connect tj. pokaždé vytvoří nové připojení a po zpracování skriptu ho zase uzavře. Pro funkčnost mysql_pconnect musí být nainstalován jako webový modul.
