首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Yii webapp共享sqlite2数据库

与Yii webapp共享sqlite2数据库
EN

Stack Overflow用户
提问于 2013-01-09 11:30:32
回答 2查看 321关注 0票数 0

嗨,我有一个sqlite2数据库,是由PHP网络应用程序使用的,我想要一个Yii网络应用程序来访问它。目前,我将db文件复制到本地服务器,并将config/main.php更改为:

代码语言:javascript
复制
        'db'=>array(
        'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/thedatabase.db',
    ),

当我运行Gii模型生成器时,我得到:

代码语言:javascript
复制
CDbException

CDbCommand failed to execute the SQL statement: CDbCommand failed to prepare the SQL statement: SQLSTATE[HY000]: General error: 26 file is encrypted or is not a database. The SQL statement executed was: SELECT DISTINCT tbl_name FROM sqlite_master WHERE tbl_name<>'sqlite_sequence'

顺便说一句,我能够将数据库转换为SQL使用

Exporting sqlite2 database to SQL

不过,我希望数据库保留为sqlite2数据库,这样Yii应用程序就可以访问最新的用户信息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-11 14:39:15

我通过使用' sqlite2 :‘而不是'sqlite:’让它在sqlite数据库中工作。

代码语言:javascript
复制
'db2'=>array(
            'class'=>'CDbConnection',
            'connectionString' => 'sqlite2:'.dirname(__FILE__).'/../../../thedatabase.db',
),

我可以像这样做查询:

代码语言:javascript
复制
Yii::app()->db2->createCommand($sql)->queryAll());

要停止错误500,对象配置必须是包含"class“元素的数组。 'class'=>'CDbConnection‘在config/main.php中是必需的。我认为这些信息已经包含在第一个数据库连接的某个地方。

票数 0
EN

Stack Overflow用户

发布于 2013-01-09 11:46:55

经过一些思考后,看起来只使用Yii项目中的旧PHP项目中的一些代码会更简单……

代码语言:javascript
复制
$db = sqlite_open($databasefilename, 0666, $sqliteerror);
$query = sqlite_query($db, "SELECT password FROM user WHERE username='$username'");
$row = sqlite_fetch_array($query);
if ($row) {
    return $row[password];
}

编辑:当使用该代码时,我得到以下错误:未定义的函数sqlite_open()

我使用的是PHP版本5.4.7...

http://au1.php.net/manual/en/function.sqlite-open.php

这里显示:PHP5< 5.4.0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14227860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档