В своей предыдущей статье я писал, что разбираюсь с 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 должны быть подключены расширения:

В Денвере:
[cc lang=”php”]extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
extension=php_sqlite3.dll[/cc]
В FreeBSD:
[cc lang=”php”]extension=php_pdo_sqlite.so
extension=php_sqlite.so
extension=php_sqlite3.so[/cc]

PHP 5.3
[cc lang=”php”]db_link = new SQLite3( $db_filename )[/cc]
PHP 5.2
[cc lang=”php”]db_link = new PDO(‘sqlite:’. $db_filename)[/cc]

Одинаково в PHP 5.3 и 5.2
[cc lang=”php”]$db_res = db_link->query( $q )
$db_res = db_link->exec( $q )[/cc]

PHP 5.3
[cc lang=”php”]$db_res->fetchArray(SQLITE3_ASSOC)[/cc]
PHP 5.2 с PDO
[cc lang=”php”]$row = $db_res->fetchAll()[/cc]

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

10 октября 2011 |

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

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

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

  2. Azzrael 14 февраля, 2012

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

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

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

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