Глядя на доступные основные источники данных , нет ни одного, называемого sqlite3
.Я подозреваю, что config базы данных побуждает CakePHP попытаться загрузить этот файл.Пожалуйста, проверьте, что вы определили подключение к вашей базе данных следующим образом:
var $default = array(
'driver' => 'sqlite', // not 'sqlite3'
'database' => '../database_name.sqlite', // db in /app directory
);
Хорошо, это (сейчас) мое понимание ситуации:
Для SQLite 2.x PHP использует функции sqlite_xxx()
, предоставляемые расширением базы данных PHPite SQLite..Это то, что в настоящее время поддерживается основным источником данных CakePHP sqlite
.(Примечание: глядя на ваш комментарий ниже, кажется, что у вас в данный момент не включено это расширение PHP.)
Для SQLite 3.x PHP использует класс SQLite3()
, предоставленныйРасширение базы данных PHP SQLite3 .Это не поддерживается как текущим основным источником данных CakePHP sqlite
, так и предоставленным сообществом sqlite3
источником данных.
Однако предоставленный сообществом источник данных sqlite3
использует PDO()
класс, предоставляемый более новым расширением PDO PHP и драйвером PDO SQLite .
Так что, хотя и не поддерживается CakePHP, похоже, что вы хотитеиспользуйте драйвер sqlite3
, чтобы избежать использования неподдерживаемой версии SQLite.:)
В любом случае, причина появления ошибки в вашем вопросе была объяснена в последнем комментарии к билету в Trac , на который вы ссылались.С тех пор билет был перенесен в Lighthouse и помечен как wont-fix
.
Источник данных, однако, превратился в сообщество Плагин источников данных на GitHub,но выглядит в основном непроверенным и история коммитов , похоже, не говорит о том, что проблема была исправлена.
В любом случае, я бы скачал эту последнюю версию источника данных, ноКажется, ваша проблема существует именно потому, что вызов new PDO()
(на том, что сейчас line 167 ) не возвращает объект PDO
, поскольку он не может подключиться к базе данных.Надеюсь, это даст вам отправную точку для устранения проблемы.Попробуйте посыпать debug($this->config); debug($this->connection);
, чтобы проверить, что идет не так.