Как мне подключить CakePHP к базе данных SQLite? - PullRequest
10 голосов
/ 20 июня 2009

У меня довольно простая проблема: я не могу подключить CakePHP к моей базе данных SQLite. Удивительно, но я не нашел много информации об этом в Интернете, хотя, возможно, я искал не те ключевые слова. Тем не менее, это мой код подключения:

var $default = array(
        'driver' => 'sqlite',
        'connect' =>'sqlite_popen',
        'persistent' => false,
        'host' => 'localhost',
        'port' => '',
        'login' => '',
        'password' => '',
        'database' => '/home/MY_USER_NAME/public_html/my_database.sqlite',
        'schema' => '',
        'prefix' => '',
        'encoding' => ''
);

Тем не менее, Cake только говорит "Cake НЕ МОЖЕТ подключиться к базе данных". Кроме того, я не знаю, где можно увидеть «настоящие» журналы (то есть ошибка, возвращаемая из «драйвера» SQLite). Итак, я зашел в тупик. Что мне делать?

Заранее спасибо.

Ответы [ 5 ]

9 голосов
/ 02 февраля 2014

Начиная с CakePHP 2.0 , Sqlite 3 поддерживается из коробки.

Убедитесь, что sqlite включен в вашей конфигурации PHP:

phpinfo();

Внутри app/Config/databases.php вы можете определить базу данных Sqlite следующим образом:

public $default = array(
        'datasource' => 'Database/Sqlite',
        'persistent' => false,
        'database' => 'my_database_name',
        'prefix' => '',
        'encoding' => 'utf8',
);

Теперь проверьте ваш файл app/webroot/my_database_name.sqlite.

6 голосов
/ 30 июля 2009

SQLite3 официально еще не поддерживается CakePHP ... возможно, потому что файл, прикрепленный к этой ошибке / расширению, работает.

https://trac.cakephp.org/ticket/3003

Загрузите последнюю версию файла, обновите его новыми исправлениями, загрузите в каталог cake/libs/model/datasources/dbo и настройте его в файле database.php.

Я использую файл с именем dbo_sqlite3.php

Мой файл конфигурации использует это для настройки драйвера:

  'driver' => 'sqlite3',
6 голосов
/ 11 февраля 2010

Как CakePHP с SQLite3:

Требования:

Шаги:

Распакуйте плагин Datasources на месте.

Отредактируйте dbo_sqlite3.php и добавьте:

App::import('Datasource','DboSource');

... как раз перед определением «класса».

Используйте следующую конфигурацию в вашем файле database.php:

var $default = array(
    'datasource' => 'Datasources.DboSqlite3',
    'login' => '',
    'password' => '',
    'database' => '/full/path/to/db.sqlite');

Готово.

1 голос
/ 20 июня 2009

Вы пытаетесь подключиться к базе данных SQLite 3? CakePHP пока не поддерживает их.

Кроме этого, вы можете попробовать добавить ведущий / на вашем пути. Похоже, вы пытаетесь сделать абсолютный путь, но без косой черты он не будет делать то, что вы думаете, он будет делать.

0 голосов
/ 07 января 2019

Для cakephp 3.6 это должно быть так:

'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Sqlite',
    'persistent' => false,
    'host' => 'localhost',
    'port' => '',
    'login' => '',
    'password' => '',
    'database' => 'C:\Bitnami\wampstack-5.6.39-0\apache2\htdocs\cake36\cake36.sqlite',
    'schema' => 'test',
    'prefix' => '',
    'encoding' => ''
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...