我很难找到有关如何在Kohana 3.2中配置SQLite的任何信息。我主要需要知道:
我应该将主机名,数据库,用户名和密码设置为(默认用户和无密码)?
另外,如何设置SQLite数据库文件的路径?
“类型”应该是什么?我试过“sqlite”,但收到错误Class 'Database_Sqlite' not found
。
这是我目前的配置选项:
'exportedDatabase' => array
(
'type' => 'sqlite',
'connection' => array(
/**
* The following options are available for MySQL:
*
* string hostname server hostname, or socket
* string database database name
* string username database username
* string password database password
* boolean persistent use persistent connections?
*
* Ports and sockets may be appended to the hostname.
*/
'hostname' => $hostname,
'database' => $database,
'username' => $username,
'password' => $password,
'persistent' => FALSE,
),
'table_prefix' => '',
'charset' => 'utf8',
'caching' => FALSE,
'profiling' => TRUE,
),
答案 0 :(得分:5)
您可以通过数据库模块使用PDO。正确的配置方式如下:
'exportedDatabase' => array(
'type' => 'pdo',
'connection' => array(
'dsn' => 'sqlite:/path/to/file.sqlite',
'persistent' => FALSE,
),
'table_prefix' => '',
'charset' => NULL, /* IMPORTANT- charset 'utf8' breaks sqlite(?) */
'caching' => FALSE,
'profiling' => TRUE,
),
在Kohana中使用PDO的一个缺点是,在ORM中,您必须在模型中手动指定所有字段(出于性能原因,您应该这样做),因为不同的数据库系统处理表字段的列表。
还有由banditron创建的real database模块。您必须记住,它不是数据库模块的替代品,因此Kohana的ORM将不使用它。除此之外,它非常整洁,并且对SQLite以外的数据库系统有广泛的支持。
答案 1 :(得分:3)
正如我发现的那样,Kohana 3.x实际上并不支持SQLite。有一个不受支持的模块,据我所知,它不起作用。
虽然使用PDO很容易,但语法与Kohana的ORM几乎相同:
$db = new PDO('sqlite:' . $dbFilePath);
$query = $db->prepare('CREATE TABLE example (id INTEGER PRIMARY KEY, something TEXT)');
$query->execute();
$query = $db->prepare("INSERT INTO example (id, something) VALUES (:id, :something)");
$query->bindParam(':id', $id);
$query->bindParam(':something', $something);
$query->execute();
答案 2 :(得分:-1)
我不使用Kohana,但这应该有效:
'hostname' => /path/to/your/sql/lite/file.sqlite
'database' => ''
'username' => ''
'password' => ''