SQLite3 и PHP 5.2

В своей предыдущей статье я писал, что разбираюсь с SQLite. Главная проблема в этой базе, на мой взгляд, в какой то корявой совместимости версий.
У SQLite сейчас две основные версии вторая и третья.

Вторая версия SQLite полноценно поддерживается любой версией PHP 5.x , в то время как SQLite3 полностью поддерживается только с PHP 5.3. В свою очередь SQLite 2 накладывает ряд ограничений на синтаксис SQL ( о них я писал в предыдущей статье в разделе недостатки SQLite ) , некоторые оказались для меня принципиальными. Кроме того, плагин для FireFox по администрированию SQLite ( который мне очень понравился ) тоже работает только с трешкой. Поэтому выбор пал на SQLite3 . Но на все шареды с которыми я работаю установлен PHP 5.2 поэтому пришлось работать через PDO.

Ниже всего несколько строк кода, первая строка работает в PHP 5.3 , вторая в PHP 5.2. Чтобы работать с PDO в PHP 5.2 должны быть подключены расширения:

В Денвере:

extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
extension=php_sqlite3.dll

В FreeBSD:

extension=php_pdo_sqlite.so
extension=php_sqlite.so
extension=php_sqlite3.so

PHP 5.3

db_link = new SQLite3( $db_filename )

PHP 5.2

db_link = new PDO('sqlite:'. $db_filename)

Одинаково в PHP 5.3 и 5.2

$db_res = db_link->query( $q )
$db_res = db_link->exec( $q )

PHP 5.3

$db_res->fetchArray(SQLITE3_ASSOC)

PHP 5.2 с PDO

$row = $db_res->fetchAll()

На вскидку ничего сложно. Но так как нигде этого я сходу не нашел. Надеюсь будет полезно.

3 Комментариев к “SQLite3 и PHP 5.2”

  1. Виталий Says:
    февраля 13, 2012 в 1:23

    Приветствую! Мучаюсь с разными (phpbb3.0.10, mybb1.6.6) форумами на роутере Асус500, как у Вас. И наконец, вероятно, обнаружил по Вашей наводке причину глюковатости из-за связки SQLite 3.3.7 и PHP 5.2.17. Вопрос – как 5.3.10 поставить на роутер?

  2. Azzrael Says:
    февраля 14, 2012 в 20:46

    У меня на роутере нет ничего необычного кроме старой прошивки от Олега. Сервак крутится в вмваре, в роутере проброшены порты, а на компе 3proxy.
    Так то у меня несколько всё проще… наверное :) Вобщем, к сожалению, не подскажу.

  3. Виталий Says:
    февраля 18, 2012 в 21:05

    Ясно. Уже выкрутился – поставил на форум http://hohma.dyndns.org/exbb/ движок exBB, т.к.
    ему вобще базы не нужны, а сайт возвожу на «родной для sqlite» cms от http://phpsqlitecms.net/ – пока объемы небольшие и на роутере все очень достойно движется. Единственно, помучился с уведомлениями на почту, но справился и с этим. :О)

Есть что сказать по теме статьи? Пожалуйста - пишите!


Случайная статья