В наши дни большинство веб сайтов и приложений используют базы данных в качестве основы для своего функционирования. Что для разработчиков означает необходимость делать запросы к серверам баз данных для получения информации. В данной статье рассматривается очень полезный инструмент для легкого и эффективного управления запросами SQL для маленьких и средних проектов.
Что такое ezSQL, и зачем он нужен
В больших проектах обычной практикой является использование CMS или рабочей среды, например, Symfony или CodeIgniter, для построения структуры сайта. Но в маленьких проектах очень многие разработчики продолжают использовать функции PHP, такие как mysql_query(), для организации запросов SQL к базе данных.
Не смотря на функциональность такого подхода, использование всех функций вида mysql_XXX является порочным методом работы. Конечно, очень многие сайты используют MySQL, но если в один прекрасный день придется иметь дело с какой-нибудь другой базой данных, например PostGres или Oracle… Ваш код не будет работать и придется переписывать все практически с нуля. Очень печально, не так ли? Поэтому рекомендуется использовать уровень абстрагирования базы данных, то есть API, которая будет обеспечивать коммуникацию между вашим приложением/веб сайтом и сервером базы данных, будь то MySQL, Oracle или PostgreSQL.
Как вы наверно же догадались, ezSQL позволяет работать с большим количеством различных баз данных одинаково легко. Хотя нужно отметить, что она не поддерживает разницу в реализации синтаксиса SQL среди различных баз данных.
Также, ezSQL обеспечивает несколько методов, которые упрощают организацию запросов к базе данных, создавая условия для написания понятного кода.
ezSQL и WordPress
Если вы знакомы с WordPress, то вероятно, знаете о классе wpdb, который позволяет отправлять запросы к базе данных. Класс wpdb основан на ezSQL, и в данном случае у вас не будет проблем с освоением ezSQL. Но не стоит беспокоиться, если вы никогда не слышали о WordPress или о классе wpdb. ezSQL очень проста для изучения и использования.
Загрузка и установка ezSQL
Сделаем несколько примеров. Для начала надо скачать копию ezSQL (ищем на открывшейся странице ссылку "Download ezSQL"). После загрузки архива, распаковываем его в папку проекта на сервере.
Для того чтобы использовать ezSQL в своих проектах, надо включить два файла: первый - ez_sql_core.php (ядро ezSQL); второй зависит от типа используемой в вашем проекте базы данных. Чтобы использовать ezSQL для MySQL, нужно включить файл ez_sql_mysql.php.
После включения файлов нужно создать объект ezSQL. Это легко выполняется с указанием имени базы данных, имени пользователя, его пароля и сервера базы данных. Следующий пример демонстрирует включение требуемых файлов и создание объекта ezSQL:
include_once "../shared/ez_sql_core.php";
include_once "ez_sql_mysql.php";
$db = new ezSQL_mysql('имя_пользователя_БД','пароль_пользователя_БД','имя_БД','сервер_БД');
Теперь у нас есть объект $db. И его можно использовать для выполнения запросов к базе данных.
Примеры запросов
ezSQL имеет несколько методов для простой организации SQL запросов. Рассмотрим несколько примеров:
Выполнение любого запроса
Для того чтобы выполнить любой запрос к базе данных, нужно использовать метод query. В случае добавления данных метод вернет идентификатор добавленной записи.
$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'Кошка','cat@google.com')");
Пример запроса обновления данных:
$db->query("UPDATE users SET name = 'Петруха' WHERE id = 4");
Выбор строки
Метод get_row используется для извлечения строки из базы данных. В примере выполняется запрос, и выводятся полученные данные:
$user = $db->get_row("SELECT name, email FROM users WHERE id = 4");
echo $user->name;
echo $user->email;
Выбор одной переменной
Если вам нужно только одна переменная, то в данном случае подходит метод get_var. Его очень просто использовать:
$var = $db->get_var("SELECT count(*) FROM users");
echo $var;
Выбор множества строк
Большой объем работы с данными приходится на получение из базы нескольких строк, соответствующих определенному критерию, и их обработку. Метод get_results позволяет получить различные данные из базы. Для обработки используется цикл foreach():
$results = $db->get_results("SELECT name, email FROM users");
foreach ( $results as $user ) {
echo $user->name;
echo $user->email;
}
Выбор столбца
Если нужно получить столбец, то можно воспользоваться методом get_col. Второй параметр - это смещение столбца в результате запроса.
foreach ( $db->get_col("SELECT name,email FROM users",0) as $name ) {
echo $name;
}
Отладка
Когда что-то не работает так, как ожидалось, ezSQL имеет отличный метод для выполнения отладки. Очевидно, что метод называется debug. При вызове данный метод отображает последний выполненный запрос к базе данных и его результат:
$db->debug();
Надеюсь, что ezSQL поможет вам в успешной реализации ваших будущих проектов!