嗨,我有一个sqlite2数据库,是由PHP网络应用程序使用的,我想要一个Yii网络应用程序来访问它。目前,我将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'顺便说一句,我能够将数据库转换为SQL使用
Exporting sqlite2 database to SQL
不过,我希望数据库保留为sqlite2数据库,这样Yii应用程序就可以访问最新的用户信息。
发布于 2013-01-11 14:39:15
我通过使用' sqlite2 :‘而不是'sqlite:’让它在sqlite数据库中工作。
'db2'=>array(
'class'=>'CDbConnection',
'connectionString' => 'sqlite2:'.dirname(__FILE__).'/../../../thedatabase.db',
),我可以像这样做查询:
Yii::app()->db2->createCommand($sql)->queryAll());要停止错误500,对象配置必须是包含"class“元素的数组。 'class'=>'CDbConnection‘在config/main.php中是必需的。我认为这些信息已经包含在第一个数据库连接的某个地方。
发布于 2013-01-09 11:46:55
经过一些思考后,看起来只使用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
这里显示:PHP5< 5.4.0
https://stackoverflow.com/questions/14227860
复制相似问题