Оптимизация работы с БД, или ezSQL
Давно хотелось чего-то по-удобнее 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% от всего объема кода 🙂
Последние комменты