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

Smazaný obsah Přidaný obsah
Milda (diskuse | příspěvky)
zrušena verze 19514 od uživatele 81.90.163.1 (diskuse) + <source> místo <pre>, jazykové a typografické úpravy
Řádek 1:
[[Soubor:Mysql-hires.gif|upright=2|thumb|Logo MySQL]]
V této kapitole se naučíme připojovat k databázi MySQL v PHP a dávatpokládat ji příkazydotazy, vše s praktickými příklady.
 
== Připojení a výběr databáze ==
 
Celé je to velice jednoduché,. pokudPokud se chceme připojit, stačí zadat:
<source lang="php">
<pre>
<?php
mysql_connect($localhost, $user, $password);
?>
</presource>
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Často je databáze na stejném počítači/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.).
<source lang="php">
 
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...).
<pre>
<?php
$localhost = "mysql.webzdarma.cz";
Řádek 24 ⟶ 22:
mysql_connect("mysql.webzdarma.cz", "wikipedia", "c3bk2pLtaQ5q");
?>
</presource>
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želpokud jsouneuvažujeme meziprolomení námizabezpečení i takový jedinci co náši webovou stránku hackují a dostanou se k celému skriptuserveru).)
 
== 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.
<source lang="php">
<pre>
<?php
mysql_select_db($databaze);
?>
</presource>
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:
<source lang="php">
<pre>
<?php
//proměnné pro připojení a výběr databáze
Řádek 46 ⟶ 44:
 
mysql_connect($localhost, $user, $password)
or die("Nepodařilo se připojit dok databázedatabázi");
//připojíme dose databáze,k databázi; pokud se to nepodaří, vypíšeme text
mysql_select_db($databaze)
or die("Nepodařilo se zvolit databázi");
?>
</presource>
 
Určitě jste si všimnulivšimli volitelné části <code>or die("...");</code>, zadávákterá se zadává za příkaz připojení a výběru databáze, kdyžpokud by se to nezdařínezdařilo. Je to takové zkrácení tohoto kódu:
<source lang="php">
<pre>
<?php
if(mysql_connect("localhost", "user", "c3bk2pLtaQ5q")){
echo "Připojení dok databázedatabázi bylo úspěšné...";
}
else{
Řádek 63 ⟶ 61:
}
?>
</presource>
Pokud se připojujeme do více databází, musíme vždy uvést databázi za dotaz:
<source lang="php">
<pre>
<?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í...
?>
</presource>
== Perzistentní připojení ==
<?php echo '<?xml version="1.0" encoding="UTF-8" ?>'; ?>
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 mysql_pconnect(), vytvářející tzv. perzistentní připojení. Opět musíme zadat všechny tři potřebné údaje.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<source lang="php">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
<head>
mysql_pconnect("localhost", "user", "password");
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
mysql_select_db('"test'");
<title>výběr oddělení</title>
?>
</head>
<body/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]], je 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.
 
[[Kategorie:PHP prakticky|Připojení k databázi]]
<?php
 
$_db = mysql_connect('127.0.0.1','root','');
mysql_select_db('test');
mysql_query("SET NAMES UTF8");
 
$qry = mysql_query("SELECT * FROM oddeleni ORDER BY Nazev ASC");
 
 
?>