Работа с SQLite3 в PHP5

.....................
Начиная с последней на сегодня версии интерпретатора PHP 5.3.0 в его стандартную поставку был внедрён новый класс под названием SQLite3. Сама библиотека SQLite обладает большим потенциалом в сфере не очень больших web-разработок, так как имеет сравнительно высокую скорость работы. Несомненным плюсом для таких проектов является и то, что фактически вся база хранится в одном файле, рядом со всеми остальными файлами. Это сказывается как на удобстве портируемости, так и на том, что формально функция защиты базы переносится на файловую систему — как минимум придётся запоминать меньше паролей. Учитывая все эти и многие другие плюсы, а также со взглядом на будущее, когда новая версия интерпретатора PHP будет внедрена на большинстве серверов, я решил написать небольшой урок о том, как работать с базой данных третьей версии формата, а заодно и узнать у более опытных, всё ли правильно я усвоил из документации.Все подобные уроки, что я видел ранее основываются на работе с встроенными функциями sqlite_*, однако сразу скажу, что они уже давно устарели, ибо для работы используют формат SQLite 2.Итак, как и в случае с любой другой базой данных для начала работы требуется создать соединение. Для этого просто создаём новый экземпляр класса, указав параметр с именем файла:db = ew SQLite3(example.sqlite)Всего конструктору можно передать до 3-х параметров. Первым — имя файла с БД, вторым — флаги открытия (только для чтения — SQLITE3_OPEN_READONLY), если использовать значения по умолчанию, то база откроется для чтения и записи, а также в случае отсутствия файла с БД он будет создан, а третьим параметром указывается ключ, который используется для расшифровки файла, если база внутри него хранится в шифрованном виде.Учитывая, что по сути мы работаем с файлами, закрывать соединение имеет смысл только в случае, если мы собираемся создавать новое, когда в старом больше не нуждаемся, потому что интерпретатор сам закроет все открытые файлы по завершении сценария. Однако, если это требуется, то делать это надо так:db->close()Вся дальнейшая работа с БД должна происходить между этими двумя действиями. Самой важной функцией класса можно считать (). Работать с ней надо так:esults = db->(SELECT emails FROM uses)while(ow = esults->fetchAay()){ va_dump(ow)}Однако в случае, когда запрос явно предполагает, что в ответ база вернёт всего одну строку, либо же Вас интересует лишь первый результат, следует использовать Sigle():esults = db->Sigle(SELECT ame, email FROM use WHERE id=1)В приведённом выше примере переменная esults будет содержать лишь значение столбца ame. Второй булевый необязательный параметр указывает на то, что результатом будет ассоциативный массив. Для большей ясности приведу ещё один пример этой же функции:esults = db->Sigle(SELECT ame, email FROM use WHERE id=1, tue)echo e-mail пользователя . esults[ame] . - . esults[email]В некоторых случаях, результат операции требуется опустить. Это происходит когда Вы выполняете, например, «INSERT», «UPDATE», или «DELETE». В таких случаях нас интересует лишь успешность выполненного запроса, о чём можно судить благодаря булевой функции exec:if(db->exec(CREATE TABLE foo (foo STRING))) { … }Во время использования конструкций вроде «INSERT» и «UPDATE» очень важно помнить об опасности SQL-инъекции, поэтому вводимые данные лучше обрабатывать. Важно сразу уяснить, что использование стандартного addslashes() может привести к плохим последствиям. Поэтому в наборе средств работы с SQLite имеется специальная функция escapeStig(). Как её использовать, думаю, итак понятно.Ну и самое важное в любой работе с БД — это отлов ошибок. Для этих целей служат 2 функции: lastEoCode() и lastEoMsg(). Первая возвращает код ошибки, зафиксированной в результате выполнения самого последнего запроса, а вторая текстовое описание результата последней транзакции на английском языке. Обе функции не требуют никаких значений в качестве фактических параметров.На этом я, пожалуй, остановлюсь и отправлю Вас за дополнительной порцией информации уже к официальной документации на английском языке, тем более, что рассказал я в этом уроке далеко не о всех возможностях класса-новобранца. За бортом остались, например, подготовка запроса к выполнению и создание callback-функций PHP, однако изложенного выше материала я считаю вполне достаточно для того, чтобы вникнуть в соль построения web-приложений на базе SQLite3.Shae this o TechoatiAdd this to Google BookmaksTweet This!Add this to Miste WogShae this o del.icio.usDigg this!Shae this o FiedFeedPost this to MySpace
Далее
DataLife Egie v.8.3 Nulled by M.I.D-Team dle
программа для >>>
Не всегда идеальный с точки зрения реализации продукт успешен….и наоборот
Этот пост интересно будет прочитать скорее всего молодым разработчикам. Но если честно рад бы был дискуссии по этому вопросу.Для начала >>>
Сборщик PDF
Сегодня выкладываю свою новую программу для сбора графических и pdf-файлов в один. Программа имеет простой и понятный интерфейс. Вы добавляете >>>

Оригинал статьи можно прочитать по этой ссылке


Рекомендуем еще

AimatioExtede.OLoad - задержка запуска

Предположим, что мы хотим выводить сообщение после того, как пользователь сохранил некоторые данные формы и прятать его через некоторое время.AimatioExtede

Advanced Guestbook Script 2.3

Advanced Guestbook Script 2.3 - php-основаный скрипт для сотворения функциональной гостевой книжки.Скрипт включает много нужных особенностей таковых как подготовительный просмотр,

MyPHPsite | Администрирование

MyPHPsite - php управляемый, mysql поддержанный пакет разработки веб-сайтов. Зарегистрированные участники могут добавлять / редактировать странички, которые сохранены в базе

Настройка прав администратора UAC в ваших программах

Как-то на хабре я наткнулся на статью, в которой был описан способ использования прав через UAC. Как мне кажется, описанный
© Онлайн по датам