PHP prakticky/Připojení k databázi: Porovnání verzí

Smazaný obsah Přidaný obsah
Milda (diskuse | příspěvky)
m →‎Perzistentní připojení: ještě dvě malé opravy
m <source> → <syntaxhighlight>
Řádek 5:
 
Celé je to velice jednoduché. Pokud se chceme připojit, stačí zadat:
<sourcesyntaxhighlight lang="php">
<?php
mysql_connect($localhost, $user, $password);
?>
</syntaxhighlight>
</source>
Místo localhost se zadává adresa serveru, kde se nachází databáze. Často je databáze na stejném serveru jako webový server (localhost), většina českých free serverů, např. ic.cz, webzdarma.cz apod. má databázi na subdoméně (mysql.ic.cz, mysql.webzdarma.cz apod.).
<sourcesyntaxhighlight lang="php">
<?php
$localhost = "mysql.webzdarma.cz";
Řádek 22:
mysql_connect("mysql.webzdarma.cz", "wikipedia", "c3bk2pLtaQ5q");
?>
</syntaxhighlight>
</source>
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 (pokud neuvažujeme prolomení zabezpečení serveru).
 
== 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.
<sourcesyntaxhighlight lang="php">
<?php
mysql_select_db($databaze);
?>
</syntaxhighlight>
</source>
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:
<sourcesyntaxhighlight lang="php">
<?php
//proměnné pro připojení a výběr databáze
Řádek 49:
or die("Nepodařilo se zvolit databázi");
?>
</syntaxhighlight>
</source>
 
Určitě jste si všimli volitelné části <code>or die("...")</code>, která se zadává za příkaz připojení a výběru databáze, pokud by se nezdařilo. Je to zkrácení tohoto kódu:
<sourcesyntaxhighlight lang="php">
<?php
if(mysql_connect("localhost", "user", "c3bk2pLtaQ5q")){
Řádek 61:
}
?>
</syntaxhighlight>
</source>
Pokud se připojujeme do více databází, musíme vždy uvést databázi za dotaz:
<sourcesyntaxhighlight lang="php">
<?php
//připojení do databáze sem už nebudu vypisovat
Řádek 73:
//... další zpracování...
?>
</syntaxhighlight>
</source>
== 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á <code>mysql_connect()</code>. Proto máme k dispozici funkci <code>mysql_pconnect()</code>, vytvářející tzv. perzistentní připojení. Opět musíme zadat všechny tři potřebné údaje.
<sourcesyntaxhighlight lang="php">
<?php
mysql_pconnect("localhost", "user", "password");
mysql_select_db("test");
?>
</syntaxhighlight>
</source>
Pro předpokládanou funkčnost mysql_pconnect musí být PHP na serveru nakonfigurováno jako webový modul. Naopak pokud se PHP skripty používají jako [[w:Common Gateway Interface|CGI skripty]], chová se <code>mysql_pconnect</code> jako <code>mysql_connect</code>, tj. pokaždé vytvoří nové připojení a po zpracování skriptu je zase uzavře.