LINUX.ORG.RU

Поддержка SQLite3 в PHP5


0

0

Здравствуйте!


Чего-то я не догоняю, как пользоваться базой в формате SQLite3 в PHP5?

Скачал простейшую админку - phpSQLiteAdmin 0.3 (http://phpsqliteadmin.sourceforge.net). В ней могу открывать файлы в формате sqlite2, а базу в формате sqlite3 она открыть не может.

phpini() показывает такую информацию, касаемо sqlite:

----- 8< -----

Общая секция:

additional .ini files parsed:
/etc/php5/apache2/conf.d/pdo_sqlite.ini,
/etc/php5/apache2/conf.d/sqlite.ini,
/etc/php5/apache2/conf.d/sqlite3.ini


Секция PDO:

PDO support - enabled
PDO drivers - mysql, sqlite, sqlite2


Секция pdo_sqlite:

PDO Driver for SQLite 3.x - enabled
PECL Module version - 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.1 2007/01/01 09:36:05 sebastian Exp $
SQLite Library - 3.3.13


Секция SQLite:

SQLite support - enabled
PECL Module version - 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.6 2007/01/01 09:36:07 sebastian Exp $
SQLite Library - 2.8.17
SQLite Encoding - UTF-8


Секция SQLITE3:

SQLite3 support - enabled
sqlite3 library version - 3.3.13

----- 8< -----

Вроде, всякого барахла для поддержки sqlite3 достаточно.

Следуя логике, PHP должно быть пофигу, какой формат у файла базы. Вызвал sqlite_open(имя_файла) и вперед.

Однако в мануале PHP есть как функция sqlite_open(), так и sqlite3_open(). Причем для функции sqlite_open() не написано, какой формат она поддерживает. То есть, я так понимаю, функция sqlite_open() должна держать все форматы (1,2,3) ? А функция sqlite3_open() поддерживает только формат 3, видимо открывая заточенный под 3-й формат обработчик ?

Или все не так просто, и единого (низкоуровневого) интерфейса для работы с разными версиями sqlite-баз в PHP нет?


>Следуя логике, PHP должно быть пофигу, какой формат у файла базы.

Это пхп, в нём неправильное восьмеричное число 03902 будет преобразовано в строку 03 автоматом без предупреждения. Какая вообще логика.

По сабжу: используй PDO. Это и есть тот самый «единый интерфейс».

anonymous
()
Ответ на: комментарий от anonymous

>Это пхп, в нём неправильное восьмеричное число 03902 будет преобразовано в строку 03 автоматом без предупреждения. Какая вообще логика.

Бида-бида. Как же теперь жить?

portalgun
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.