您好我有一个PHP webapp使用的sqlite2数据库,我想要一个Yii webapp来访问它。目前我将db文件复制到本地服务器,我已将config / main.php更改为:
'db'=>array(
'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/thedatabase.db',
),
当我运行Gii模型生成器时,我得到:
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'
BTW我可以使用
将数据库转换为SQLExporting sqlite2 database to SQL
虽然我希望数据库保留为sqlite2数据库,以便Yii应用程序可以访问最新的用户信息。
答案 0 :(得分:0)
经过一番思考后,看起来在Yii项目中使用旧PHP项目中的一些代码会更简单......
$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
这里说: PHP 5&lt; 5.4.0
答案 1 :(得分:0)
我使用'sqlite2:'代替'sqlite:'
使用sqlite2数据库'db2'=>array(
'class'=>'CDbConnection',
'connectionString' => 'sqlite2:'.dirname(__FILE__).'/../../../thedatabase.db',
),
我可以这样查询:
Yii::app()->db2->createCommand($sql)->queryAll());
要停止错误500对象配置必须是包含“class”元素的数组'class'=&gt;'config / main.php中需要'CDbConnection'。我认为信息已经包含在某个地方的第一个数据库连接中。