Какво е ezSQL?
ezSQL е Open Source PHP клас за връзка с бази данни. Негов автор е Justin Vincent. Този клас поддържа следните бази данни: МySQL, Oracle8, SQLite (PHP).
Защо да ползваме ezSQL?
1. С него се пести време при писането на PHP код.
2. Поддържа кеширане на SELECT заявките.
3. Напълно безплатен, с възможност да се ползва абсолютно във всички възможни проекти.
4. Има възможност за debug .
5. Класа ezSQL поддържа Smarty.
6. Много малък и простичък клас които е напълно функционален и лесен за редактиране при необходимост :)
7. Използването на DB абстрактен слой позволява лесното мигриране от една DB към друга. Пример: Необходимо е мигриране от Oracle към MySQL. В този случай единственото необходимо нещо да се направи е include на подходящия допълнителен клас към ezSQL.
8. За мен WordPress е сериозен пример за добър проект писан от добри PHP разработчици и именно това дава една положителна точка на ezSQL , понеже DB класа на WordPress "wpdb" е базиран на ezSQL.
9. Чрез ezSQL се пести доста код.
За да не изпадам в излишна теория и обща информация ще започна с примерите(в този случай примерите са най- добрата документация):
Първо трябва да се изтегли ezSQL класа от официалния сайт на Justin Vincent-> Сайт на ezSQL
След като се изтегли е необходимо в нашия пример да се включи( (include) ядрото на ezSQL (ez_sql_core.php) и след това базата с която ще се работи(в случая е MySQL: (ez_sql_mysql.php) ):
include_once "../shared/ez_sql_core.php";
include_once "ez_sql_mysql.php";
$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');
Сега вече можем да правим примера.
1. Простa INSERT/UPDATE заявка:
$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'Ribok','[email protected]')");
или
$db->query("UPDATE users SET name = 'Ribok' WHERE id = 4");
2. SELECT заявка за извеждане на един ред:
$user = $db->get_row("SELECT name, email FROM users WHERE id = 4");
echo $user->name;
echo $user->email;
3. Бързо асоцииране на променлива с резултат от просто select с един ред:
$var = $db->get_var("SELECT count(*) FROM users");
echo $var;
4. SELECT заявка и извеждане на многобройни редове:
$results = $db->get_results("SELECT name, email FROM users");
foreach ( $results as $user )
{
echo $user->name;
echo $user->email;
}
5. Select заявка за конкретна колона:
foreach ( $db->get_col("SELECT name,email FROM users",0) as $name )
{
echo $name;
}
6. Изследване на заявките, чрез DEBUG(Активира се по- следния начин):
$db->debug();
7. Активиране на кеширането на заявки:
$db->cache_timeout = 24;
$db->cache_dir = '/tmp/ezsql_cache';
$db->use_disk_cache = true;
$db->cache_queries = true;
Времето се измерва в часове, но ако желаете да бъде в секунди е необходимо да се направи малка корекция.
Във файл "ez_sql_core.php" , ред "317" се заменя:
if ( (time() -- filemtime($cache_file)) > ($this->cache_timeout*3600) )
със:
if ( (time() -- filemtime($cache_file)) > ($this->cache_timeout) )
PS0: Ако някои има някакви допълнения или коментари може да ги сподели.
PS1: В никакъв случай не твърдя, че това е най- страхотния клас, защото има и други добри като AdoDB които е с доста дълга история. Идеята на това ръководство е да бъде в полза на някои търсещ или ползващ такъв клас :).
Какво е ezSQL и как да го ползваме,