Собираем
информацию
по крупицам

Web-разработка

SQLite3 PDO драйвер для CodeIgniter
18-08-2010
16:47:13

Официальная страница / Official page

 

Драйвер PDO SQLite3 для CodeIgniter v.1.7.x.

 

Протестирован в CodeIgniter v.1.7.1 и v.1.7.2.

 

Требования: CodeIgniter 1.7.x

Последняя актуальная версия: 0.03 от 17.09.2010

Скачать: SQLite3 PDO Driver for CodeIgniter by Xintrea v.0.03

 

 

Установка:

 

1. Создаем директорию /pdo в директории /database/drivers, и копируем туда php-файлы из архива.

 

2. Создаем SQLite3 базу данных, и размещаем ее в нужной нам директории. Например я использую директорию [APPPATH]/db, файл называю base.db (то есть, путь к файлу - /application/db/base.db)

 

3. В файле [APPPATH]/config/database.php делаем следущие настройки:

 

...
$db['default']['hostname'] = '';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = 'sqlite:'.APPPATH.'db/base.db';
$db['default']['dbdriver'] = 'pdo';
...

 

Все, после этого можно использовать функции класса Database или Active Record для работы с базой данных.

 

Внимание! Если CodeIgniter настроен так, что данные сессии (session) хранятся в базе данных (а не в cookies), то путь к файлу базы нужно указывать абсолютный, то есть с корня. Например:

 

$db['default']['database'] = 'sqlite:/var/www/mysite/db/base.db';

 

Это связано с тем, что CI сбрасывает текущую директорию сразу после выполнения деструкторов контроллеров. А сохранение session-данных в базу происходит после завершения работы контроллеров. Поэтому, в момент сохранения сессионных данных, файл базы не может быть найден, если к нему задан относительный путь.

 

 

Где применяется этот драйвер?

 

На этом сайте (webhamster.ru) всегда установлена самая свежая версия драйвера. Несколько российских и зарубежных разработчиков также используют драйвер в своих проектах.

 

 

История создания

 

Использование SQLite3 в CodeIgniter всегда стояло особняком в обсуждениях разработчиков. С одной стороны, SQLite мало интересует профессиональных PHP-разработчиков. С другой стороны, какие-то библиотеки для работы с SQLite вроде бы и были, но находились в полурабочем состоянии.

 

Версия 0.01

 

В 2009 году я сделал PDO-драйвер для работы с SQLite3. Делал его, взяв за основу уже существующий класс CI_DB_pdo_driver. Вся работа заключалась в том, чтобы заставить данный класс работать с реалиями SQLite и исключить все ошибки, возникающие из-за особенностей взаимодействия с SQLite-базой. Когда ошибок не стало, и драйвер реально заработал, я его опубликовал (v.0.01).

 

Версия 0.02

 

В процессе работы выяснилось, что CodeIgniter по умолчанию для соединения с базой использует так называемое "персистентное" соединение. Но как показала практика, такой режим работы для файл-ориентированных баз неприемлем. А SQLite как раз является файл-ориентированной базой. Поэтому были сделаны небольшие исправления, и в 2010 году появилась версия 0.02.

 

Версия 0.03

 

Исправлен результат вызова метода $this->db->count_all_results(), так как подсчет общего количества строк в SQLite отличается от других популярных реализация SQL языка.

 

 

Известные проблемы

 

Драйвер не работает с LIKE функцией. То есть, конструкция вида

 

$this->db->like('title', 'match');

 

вызовет ошибку. Для использования SQL-оператора LIKE, можно использовать функцию ActiveRecords where(), например так:

 

$this->db->where("title LIKE '%match%'");

 

Пока не знаю, как решить эту проблему, ибо у меня мало опыта работы с SQL-ными базами данных.


К списку проектов

Интересное на сайте


Qt » MyTetra Web Client

Официальная страница / Official page(Rus / Eng)   MyTetra Web Client — это сервис для доступа к базе данных программы MyTetra прямо из брау...


Игры под DOS » Star Wars Elastic

Проект игры с нестандартным резиновым интерфейсом. Этот проект написан просто из-за того, что очень хотелось пощупать что такое управление объектом, ...


Юмор » ЛОР. Призрак в опере? Нет проблем, обеспечим!

Да! ЛОР снова торт. Если кто еще не знает, 9 октября 2011 года усилиями однозвёздного пользователя bk_ стартовала Гитарная Битва Луноходов.   На...

RSS подписка

Подпишитесь на новости сайта по RSS


Магазин недорогого постельного белья накроватке большой магазин "текстиль Иваново".
http://ooogeodeziya.su/ межевой план по образованию части земельного участка.

Внимание!

На этом сайте разрабатывается программа MyTetra и её родственные проекты.

Доступны к просмотру следующие базы знаний:

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик