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

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-ными базами данных.


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

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


Демо, сделанное в генераторе » Xintrea Home Page Demo

Размер: 250 Кбайт Требования: Windows 95/98/XP Год: 2005   Демка для моего старого сайта xi.net.ru. Демка сделана просто щелчками мышки, с ...


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

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


Гаджеты » Новогодняя битва роботов в Волгодонске (2013-2014)

В канун наступления нового, 2014 года, в моем городе Волгодонске одно из подразделений Станции Юных Техников провело соревнования по робо-сумо.  ...

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, 19)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean

База Аrmagedec

База SorokinRed

База Deadelf79

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

 

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

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