Работа с запросами SQL в PHP с помощью ezSQL

В наши дни большинство веб сайтов и приложений используют базы данных в качестве основы для своего функционирования. Что для разработчиков означает необходимость делать запросы к серверам баз данных для получения информации. В данной статье рассматривается очень полезный инструмент для легкого и эффективного управления запросами 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 поможет вам в успешной реализации ваших будущих проектов!
Теги:
ezSQL
Добавлено: 16 Мая 2018 09:14:39 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...