2013-01-09 82 views
0

您好我有一個PHP webapp正在使用的sqlite2數據庫,我希望Yii webapp能夠訪問它。此刻,我複製的數據庫文件到本地服務器,我已經改變了的config/main.php到:與Yii webapp共享sqlite2數據庫

 '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我我能夠使用

Exporting sqlite2 database to SQL

雖然我希望數據庫留爲sqlite2數據庫到數據庫轉換爲SQL,以便Yii的應用程序可以訪問最新的用戶INF O操作。

回答

0

我得到了它與sqlite2數據庫工作,通過使用 'sqlite2:' 而不是 'sqlite的:'

'db2'=>array(
      'class'=>'CDbConnection', 
      'connectionString' => 'sqlite2:'.dirname(__FILE__).'/../../../thedatabase.db', 
), 

我可以這樣做查詢:

Yii::app()->db2->createCommand($sql)->queryAll()); 

要停止錯誤500對象配置必須在配置/ main.php需要含有「類」元件「類」 =>「CDbConnection」的陣列。我認爲這些信息已經包含在某個地方的第一個數據庫連接中。

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 < 5.4.0