2011-07-16 4 views
2

AS3を使用してフラッシュからSQliteデータベースを読み取ろうとするときに問題が発生しました。 データベースはこのPHPスクリプトを使用して作成されました:私はこの非常に簡単なスクリプトを使用して、AS3でこのデータベースを読む必要がある。この後 enter image description hereactionsipt 3(AIRまたはFlash)からSQliteを読み取るときに問題が発生する

$db = new PDO('sqlite:abaco.sqlite'); 
$db->exec("CREATE TABLE 'abacodata' ('mod' varchar(25) NOT NULL,'name' varchar(25) NOT NULL,'pos' int(3) NOT NULL,'posx' int(11) NOT NULL,'posy' int(11) NOT NULL,'image' varchar(50) NOT NULL,'type' int(1) NOT NULL);"); 
$lines=file("TEMPDATA.txt"); 
foreach($lines as $v) { 
    $values = explode(',',$v); 
    $sql = "INSERT INTO abacodata VALUES ('".$values[0]."', '".$values[1]."', '".$values[2]."', '".$values[3]."', '".$values[4]."', '".$values[6]."', '".$values[5]."');"; 
    $db->exec($sql); 
} 

あなたが見ることができるように、これはこのようなデータベースを作成します。

trace("INITIATED"); 
import flash.filesystem.File; 
import flash.data.*; 
var dbFile:File= File.applicationStorageDirectory.resolvePath("abaco.sqlite"); 
var sqlConn:SQLConnection = new SQLConnection(); 
var sqlStatement:SQLStatement = new SQLStatement(); 
sqlConn.open(dbFile); 
sqlStatement.sqlConnection = sqlConn; 
sqlStatement.text = "SELECT * FROM abacodata;"; 
sqlStatement.execute(); 
var result:Array = sqlStatement.getResult().data; 
trace(result[0]['mod']); 

スクリプトはファイルにアクセスすることはできますが、テーブルを見つけることはできません。 enter image description here

私は間違っていると思いますか?どうもありがとう!

答えて

2

実際に正しいデータベースファイルに接続しているかどうか確認できますか?

私は、3次の事を確認したい:

1 - ファイルオブジェクトは、正しいファイルを指しています。あなたは、トレースにnativePathことによって、これを確認することができます。

trace(dbFile.nativePath); 

2 - あなたがそのデシベルを開いたとき、あなたは新しいものを作成するのではなく、既存のDBを開くことを確認します。この方法で接続を開きます。 DBファイルが存在しない場合、あなたはerrorを取得します:

sqlConn.open(dbFile, SQLMode.READ); 

3 - 最後に、あなたのテーブルがsqlite_masterテーブルを照会することによって存在することを確認してください。

sqlStatement.text = "select * from sqlite_master;"; 
sqlStatement.execute(); 
0

データベースの作成に使用しているツールとAdobeの実装の間にフォーマットの競合がある可能性があります。

actionscriptから同じ作成スクリプトを実行し、同じエラーが発生するかどうかを確認してください。

関連する問題