SqLite: легче не бывает! Никита Кислицин Xakep, номер #069, стр. 069-126-3 Практика Впрочем, довольно голословной теории. Давай разберемся, каким же образом осуществляется работа с SqLite. Вот основные функции при процедурном подходе: * sqlite_open("file"). Эта функция открывает для работы файл, содержащий все таблицы твоей базы данных. Функция возвращает указатель на открытую базу данных, и вся дальнейшая работа с базой идет через него. В одном сценарии ты можешь открыть столько БД, сколько тебе потребуется, и без проблем оперировать потоками информации. * sqlite_query($db, "query"). Эта функция отправляет запрос "query" БД, доступной по идентификатору $db. Функция возвращает указатель на строку с результатами запроса. * sqlite_fetch_array($result). Функция помещает в двухмерный ассоциативный массив результат запроса. Если результат содержит несколько записей, каждая из них доступна в рамках цикла while, например так: while ($row = sqlite_fetch_array($result)) { printf("$row[id1] | $row[id2]\n"); } * Функция sqlite_close($db) закрывает соединение с базой данных. Эту процедуру необходимо вызывать в конце каждого сценария, чтобы освободить неиспользуемую память и уничтожить указатели. Давай напишем простенький сценарий, на примере которого ты быстро поймешь, как работать с этой СУБД. Всмотрись в этот код: Пример простого сценария <?php $db = sqlite_open("lite.db"); sqlite_query($db, "CREATE TABLE blah (id INTEGER PRIMARY KEY, name CHAR(255))"); sqlite_query($db, "INSERT INTO blah (name) VALUES ('gorl')"); sqlite_query($db, "INSERT INTO blah (name) VALUES ('cuttah')");; $res = sqlite_query($db, "SELECT * FROM blah"); while ($re = sqlite_fetch_array($res)) { echo "$r[name] has $r[id]<br> \n"; } sqlite_close($db); ?> Внимательный читатель сразу отметит сходство в синтаксисе работы с mySQL. В самом деле, незначительно отличаются лишь названия функций. В любом сценарии можно просто заменить mysql на sqlite, и тем самым, фактически, будет осуществлен переход на новую технологию! А сейчас я расскажу тебе о дополнительных фишках, которые мне удалось разведать. Дополнительные фишки Помимо кучи внутренних особенностей, которые нас не особенно волнуют, SqLite предоставляет программистам кучу дополнительных удобных функций. Они несколько упрощают сценарии и ускоряют процесс извлечения информации из базы. Так, например, одним вызовом функции стало возможно и выполнить запрос, и извлечь данные, сводя на нет весь лишний геморрой. Хотя, конечно, это все очень призрачно. Но факт остается фактом – сами по себе сценарии упрощаются: вместо громоздкой конструкции применяется всего один вызов функции. Более того, если запрос заведомо возвращает только один столбец, при помощи sqlite_single_query() можно сразу получить результат – строку или массив с интересующей информацией. Впрочем, не следует этим злоупотреблять: если результат выборки содержит большое количество данных, объем занятой памяти убьет весь выигрыш производительности. |