Метка: оптимизация кода

Оптимизация работы с БД, или ezSQL

оптимизация класс ezsql php

Давно хотелось чего-то по-удобнее mysql_connect и компании, так чтобы без лишних строк...

Самому реализовывать решение этой проблемы не имело смысла (хотя я попробовал :), так как великолепные решения уже найдены.

Вспомнился WordPress с его дико удобным классом $wpdb, который позволяет делать любые запросы в БД без особых напрягов, в одну строку, используя три команды.

После недолгих поисков я узнал, что WordPress, как и другие 100k сайтов в инете используют класс, который называется ezSQL (автор Джастин Винсент). Этот класс дает возможность работать с многими популярными базами данных mysql, mssql, sqlite, sybase, postgresql, oracle и т.д.

И действительно им очень просто пользоваться. N шагов, как начать пользоваться ezSQL для mysql:

1. Скачай zip архив, содержащий ezSQL, и извлеки из него файлы. [ Скачать ezSQL ]

2. Скопируй файл ez_sql_core.php из папки shared, и файл ez_sql_mysql из папки mysql в папку с твоим скриптом (или, например, в папку includes, если такая есть).

3. Подключи класс в свой скрипт и настрой его следующим образом:

include_once('includes/ez_sql_core.php');
include_once('includes/ez_sql_mysql.php');
$db = new ezSQL_mysql($dbuser,$dbpass, $dbname, $dbhost);
/* Сотри includes/ в первых двух строках, если ты поместил файлы в корень.
Где $dbuser, $dbpass, $dbname, $dbhost это логин пользователя БД, его пароль, имя БД и адрес БД (по умолч. localhost). */

4. Теперь можно использовать класс ezSQL в твоем скрипте, в примере выше он представлен, как $db (хотя тут есть немного места для фантазии).

А использовать его нужно так:

Пример 1

// Сделать выборку нескольких записей из таблицы и вывести их
$users = $db->get_results('SELECT name, email FROM users');
foreach ( $users as $user )
{
// Вывести данные используя возможности ezSQL
echo $user->name;
echo $user->email;
}

Пример 2

// Вытащить из таблицы одну строку и вывести ее
$user = $db->get_row('SELECT name,email FROM users WHERE id = 4');
echo $user->name;
echo $user->email;

Пример 3

// Вытянуть из таблицы одно значение и вывести его
$var = $db->get_var('SELECT count(*) FROM users');
echo $var;
<h3><span style="font-size: medium;">Пример 4</span></h3>
// Добавить данные в таблице
$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'lance','lance@gta.com')");
<h3><span style="font-size: medium;">Пример 5</span></h3>
// Обновить данные в таблице
$db->query("UPDATE users SET name = 'Lance' WHERE id = 2)");

Cпасибо тебе, Джастин.

После того как я переписал весь код используя ezSQL, общее кол-во строк уменьшилось на 27, а символов - на 822.

Edit: на тот момент это было около 8% от всего объема кода 🙂