JednotnΘ databßzovΘ rozhranφ v PHPLIB

Jeliko₧ jsou tΘm∞° vÜechny funkce PHPLIB zßvislΘ na databßzi, obsahuje knihovna jednotnΘ databßzovΘ rozhranφ pro p°φstup k r∙zn²m databßzov²m server∙m. Rozhranφ m∙₧eme pou₧φvat bu∩ spoleΦn∞ s celou knihovnou PHPLIB, nebo zcela samostatn∞. DatabßzovΘ funkce jsou soust°ed∞ny v souborech zaΦφnajφcφch na db_.

Pokud nepou₧φvßme PHPLIB, m∙₧eme na zaΦßtku skriptu pou₧φt p°φkaz require "db_mysql.inc" a vyu₧φvat rozhranφ pro p°φstup k MySQL. Pokud mφsto toho pou₧ijeme nap°φklad require "db_odbc.inc", bude vÜe rovnou fungovat s libovolnou ODBC databßzφ.

V souboru je definovßna t°φda DB_Sql. Pro vyu₧itφ knihovny staΦφ vytvo°it potomka tΘto t°φdy a pomocφ n∞kolika Φlensk²ch prom∞nn²ch nastavit sprßvnΘ parametry. Musφme sprßvn∞ nastavit hodnoty nßsledujφcφch Φty° prom∞nn²ch:

Host
JmΘno poΦφtaΦe, na kterΘm databßzov² server b∞₧φ.
Database
JmΘno databßze, ke kterΘ se chceme p°ipojit.
User
U₧ivatelskΘ jmΘno, pod kter²m se chceme k databßzi p°ipojit.
Password
Heslo u₧ivatele, kter² se k databßzi p°ipojuje.

Definice vlastnφ t°φdy m∙₧e vypadat t°eba takto:

class DB_IShop extends DB_Sql {
  var $Host     = "localhost"; 
  var $Database = "ishop";     
  var $User     = "phplib";  
  var $Password = "octopus"; 
}

Pro vlastnφ prßci s databßzφ si pak musφme vytvo°it instanci naÜφ t°φdy. Pokud pak s databßzφ hodn∞ cviΦφme, je v²hodnΘ ji pojmenovat co nejkratÜφm nßzvem.

$q = new DB_IShop;

K dispozici nynφ mßme n∞kolik metod, kterΘ nßm umo₧nφ provßd∞nφ SQL dotaz∙ a Φtenφ jejich v²sledk∙.

K provedenφ SQL dotazu slou₧φ metoda query():

$q->query("select * from vyrobky");

Metoda next_record() Φte dalÜφ zßznam v²sledku a vracφ true, dokud mß co Φφst. Pro zφskßnφ obsahu jednotliv²ch polo₧ek zßznamu slou₧φ metoda f(). V²pis v²sledku dotazu m∙₧e vypadat t°eba takto:

while ($q->next_record()):
   echo $q->f("nazev"), " ", $q->f("cena"), "<br>\n";
endwhile;

T°φda DB_Sql nabφzφ mnoho dalÜφch u₧iteΦn²ch metod. Za vÜechny jmenujme nap°φklad num_rows(), kterß vracφ poΦet zßznam∙ ve v²sledku, nebo affected_rows(), kterß vracφ poΦet zßznam∙ ovlivn∞n²ch SQL p°φkazem INSERT, UPDATE nebo DELETE. Podrobn² v²Φet vÜech metod a jejich popis naleznete v originßlnφ dokumentaci.

© Ji°φ Kosek 1999
$Id: db.html,v 1.3 2000/10/30 10:21:49 Admin Exp $