Базы данных sqlite не открываются ни в чем другом, кроме PHP - PullRequest
2 голосов
/ 26 ноября 2009

Недавно я перенес одно из моих приложений PHP из MySQL в SQLite, чтобы упростить администрирование. По какой-то причине я могу получить доступ к базе данных sqlite из PHP, и она отлично работает, но если я попытаюсь открыть ее с помощью чего-то другого, например, sqlitemanager или плагина sqlite firefox, база данных просто кажется пустой или не открывается это.

Есть идеи?

Ответы [ 4 ]

2 голосов
/ 26 ноября 2009

Sqlite доступен (как минимум) в двух основных версиях, 2 и 3, которые несовместимы. Возможно, есть некоторое несоответствие между php и другими клиентами. Например. sqlite_ префиксные функции используют устаревшую версию 2, в то время как Sqlite3 является правильным классом php для текущей версии 3.

0 голосов
/ 21 августа 2010

PHP также автоматически закрывает соединения SQLite. Я согласен с mtvee, что это, вероятно, версия. Разница между 2 и 3 очень большая. PDO может выполнять обе функции, но по умолчанию принимает значение 3. Вы также можете использовать 2 и 3 с отдельными классами (без PDO): новая SqliteDatabase ('db.sqlite2') и новая Sqlite3 ('db.sqlite3'). Я очень рекомендую использовать PDO (и стандартную версию 3).

0 голосов
/ 03 декабря 2009

Кажется, проблема в том, что PHP не закрывал базу данных в конце сценария PHP. Насколько я знаю, PHP автоматически закрывает соединения MySQL в конце скрипта. Это не делает то же самое для sqlite. Таким образом, вам не нужно явно закрывать соединения mySQL, но поскольку Sqlite на самом деле является дескриптором файла, вам необходимо явно закрыть его. Может ли кто-нибудь подтвердить это, чтобы я был уверен?

0 голосов
/ 26 ноября 2009

php имеет старую библиотеку sqlite по умолчанию, я полагаю, если вы не используете PDO. возможно, это проблема версии БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...