Недавно я столкнулся с точно такой же проблемой и выяснил, что происходит. (Да, все остальные ответы верны - это проблема несовпадения версий.) Я публикую это, чтобы предоставить дополнительную информацию, которая может быть полезна для других, столкнувшихся с этой проблемой ...
Резюме:
Ошибка связана с тем, что инструмент командной строки sqlite3.exe
(который реализует SQLite версии 3) не может прочитать файлы базы данных, созданные с помощью процедурного интерфейса PHP, в SQLite (который реализует SQlite версии 2).
Обсуждение:
Я следую учебному пособию, описывающему, как использовать SQLITE с PHP: Учебное пособие по SQLite PHP (Обратите внимание, что я использую PHP 5.2.14 в Windows XP). Оказывается, PHP 5.2 имеет два (несовместимых) способа взаимодействия с системой управления базами данных SQLite; процедурный API ( SQLite ) и объектно-ориентированный API ( Функции SQLite (PDO_SQLITE) ). Процедурный API использует SQLite версии 2, а ООП API использует SQLite версии 3. Для платформ Windows PHP процедурный API включен, раскомментировав эту строку в php.ini
:
extension=php_sqlite.dll
Пока OOP API включен, раскомментировав эти строки:
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
Обратите внимание, что существует бесплатный инструмент Win32, который позволяет администрировать и манипулировать любой версией баз данных SQLite: Администратор SQLite . Этот инструмент позволяет преобразовать базу данных версии 2 (созданную с помощью процедурного API PHP) в базу данных версии 3, которую можно прочитать с помощью инструмента командной строки sqlite3.exe
.