gpt4 book ai didi

sql - 从 actionsipt 3(AIR 或 Flash)读取 SQlite 时出现问题

转载 作者:行者123 更新时间:2023-12-03 03:47:39 24 4
gpt4 key购买 nike

我在尝试使用 AS3 从闪存读取 SQlite 数据库时遇到一些问题。数据库是使用以下 php 脚本创建的:

$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);
}

如您所见,这会创建一个如下所示的数据库: enter image description here之后我需要使用这个非常简单的脚本在 AS3 中读取这个数据库:

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

有人知道我做错了什么吗?非常感谢!

最佳答案

您能看看您是否确实连接到了正确的数据库文件吗?

我会检查以下 3 件事:

1- 文件对象是否指向正确的文件;您可以通过跟踪nativePath来检查这一点:

trace(dbFile.nativePath);

2- 确保打开该数据库时,打开现有数据库而不是创建新数据库。以这种方式打开您的连接;如果 db 文件不存在,您将得到 error :

sqlConn.open(dbFile, SQLMode.READ);

3-最后,通过查询 sqlite_master 表来确保您的表存在:

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

关于sql - 从 actionsipt 3(AIR 或 Flash)读取 SQlite 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6720244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com