Работа с SQLite в codeigniter - PullRequest
       2

Работа с SQLite в codeigniter

6 голосов
/ 30 ноября 2011

Я пытаюсь начать работу с sqlite в последней версии CodeIgniter.

Мой database.php выглядит так:

$active_group = 'default';
$active_record = TRUE;

$db ['default'] ['hostname'] ='';
$db ['default'] ['username'] ='';
$db ['default'] ['password'] ='';
$db ['default'] ['database'] = APPPATH. 'db / producers.sqlite';
$db ['default'] ['dbdriver'] = 'sqlite';
$db ['default'] ['dbprefix'] ='';
$db ['default'] ['pconnect'] = TRUE;
$db ['default'] ['db_debug'] = TRUE;
$db ['default'] ['cache_on'] = FALSE;
$db ['default'] ['cachedir'] ='';
$db ['default'] ['char_set'] = 'utf8';
$db ['default'] ['dbcollat​​'] = 'utf8_general_ci';
$db ['default'] ['swap_pre'] ='';
$db ['default'] ['autoinit'] = TRUE;
$db ['default'] ['stricton'] = FALSE;

Я создал свою таблицу, создал и поместил в нее данные.

Я пытаюсь собрать данные с помощью этого кода:

$query = $ this-> db-> get ('Producers');


foreach ($ query-> result () as $ row)
{
echo $ row-> name;
}

Это дает мне следующую ошибку: Fatal error: [] operator not supported for strings in / Applications / MAMP / htdocs / webites / api / public_html / system / database / DB_driver.php on line 1183

Или эта ошибка иногда:

A Database error occurred

Error Number: 1

SQL logic error or missing database

SELECT * FROM (Producers)

Filename: / Applications / MAMP / htdocs / webites / api / public_html / controllers / welcome.php

Line Number: 23

Как мне решить это? Я тоже не могу добавить данные, есть похожие ошибки

Ответы [ 5 ]

2 голосов
/ 20 декабря 2011

У меня была такая же проблема при использовании CI 2.1.0 и я нашел следующее исправление для фатальной ошибки:

В системе / базе данных / DB_driver.php изменить:

Линия 1165

$message = $error;

до

$message[] = $error;

Строка 1169

$message = ( ! is_array($error)) ? array(str_replace('%s', $swap, $LANG->line($error))) : $error;

до

$message[] = ( ! is_array($error)) ? array(str_replace('%s', $swap, $LANG->line($error))) : $error;

Источник

1 голос
/ 03 февраля 2014

В 2.1.0 есть ошибка, препятствующая работе с базами данных SQLite.Вам необходима обновленная версия CodeIgniter 2.1.1.

1 голос
/ 29 декабря 2011

Для устранения ошибки "Неустранимая ошибка: оператор [] для строк не поддерживается"

Я изменяю файл в * DB_driver.php: 1171 *

добавив эту строку:

$message = (array)$message;
1 голос
/ 30 ноября 2011

Никогда не пытался использовать SQLite с CI, но я нашел возможный ответ на вашу проблему. Попробуйте добавить «sqlite:» перед именем вашей базы данных, например:

$db ['default'] ['database'] = 'sqlite:'.APPPATH.'db / producers.sqlite';

Источник .

0 голосов
/ 16 октября 2016

попробуй кодигенитель 3х

$db['default'] = array(
        'dsn' => '',
        'hostname' => 'sqlite:' . APPPATH . 'db/database.db',
        'username' => '',
        'password' => '',
        'database' => '',
        'dbdriver' => 'pdo',
        'dbprefix' => '',
        'pconnect' => FALSE,
        'db_debug' => (ENVIRONMENT !== 'production'),
        'cache_on' => FALSE,
        'cachedir' => '',
        'char_set' => 'utf8',
        'dbcollat' => 'utf8_general_ci',
        'swap_pre' => '',
        'encrypt' => FALSE,
        'compress' => FALSE,
        'stricton' => FALSE,
        'failover' => array(),
        'save_queries' => TRUE
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...