Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
Práce s MySQL
24. února 1999, 00.00 | SQL stroje se staly základním stavebním kamenem většiny WWW serverů, a proto není divu že PHP obsahuje podporu pro většinu existujících SQL serverů. Pod linuxem je nejpoužívanější právě MySQL
SQL stroje se staly základním stavebním kamenem většiny WWW serverů, a proto není divu že PHP obsahuje podporu pro většinu existujících SQL serverů, včetně spojení pomocí ODBC. Tedy "obsahuje", podpora je přítomna jen v případě že ji zadáte při konfiguraci před kompilací PHP.
Zde si ukážeme jak komunikovat s MySQL, což je pod linuxem nejpoužívanější databáze. Syntaxe příkazů je velmi podobná céčkovskému API a na příkladu si ukážeme jak navázat spojení, položit dotaz a zpracovat výsledky.
K tomu budeme využívat následující fce:
int mysql_connect (string [hostname], string [username], string [password]);
přípojí se k SQL stroji, fce vrací identifikátor MySQL spojení (link_id), v případě chyby false
int mysql_select_db (string db_name, int [link_id]);
vybere db, fce vrací true nebo false
int mysql_query(string query, int [link_id]);
položí SQL dotaz, pokud vše dopadlo OK fce vrátí MySQL result (výsledek :) ) jinak false
int mysql_num_rows(string result);
vrátí počet řádek ve výsledku
int mysql_result(int result, int row, mixed field);
navrátí hodnotu z výsledku na danné řádce a v danném políčku (lze indexovat jak číslem, tak jménem sloupce)
int mysql_close(int [link_id);
int mysql_affected_rows(int [link_id]);
navrátí počet použitých řádků (v případě užití UPDATE, INSERT nebo DELETE)
Jak jste asi pochopili, parametry uzavřené do hranatých závorek nejsou povinné (většinou se jedné o id spojení k db, a pokud je jen jedno, není potřeba jej neustále opakovat. Na druhou stranu za to nic nedáte..)
A teď slíbená ukázka:
/* pripojeni do Mysql */ /* bez parametru => db musi byt na localhostu, povoleny pristup uzivatele pod kterym bezi apache a bez hesla */ $mysql=mysql_connect(); if (!mysql_select_db($db_name,$mysql)) chyba("
Error nelze zvolit db: $db_name"); /* SELECTovani z tabulky */ $dotaz="SELECT data FROM tabulka"; $result= mysql_query($dotaz,$mysql); $pocet= mysql_num_rows($result); if (!$pocet) chyba("Nebyla vybrana zadna radka"); /* pouziti ziskanych dat */ for ($i=0; $i<$pocet; $i++) echo mysql_result($result,$i,0); /* INSERT */ $dotaz="INSERT INTO tabulka (url, popis) VALUES ('$url','$popis')"; $result= mysql_query($dotaz,$mysql); $pocet= mysql_affected_rows(); if(!$pocet) printf("%s", mysql_error()); printf("Pocet updatovanych zaznamu: %d",$pocet); mysql_close($mysql); ?>
Poslat článek
Nyní máte možnost poslat odkaz článku svým přátelům:
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007