您正在寻找的是“fetchAll”。请注意,您的代码对 SQL 注入是开放的,很容易通过将恶意值传递给 PHP 脚本来删除您的数据库。因此,我已将代码从已弃用的 Mysql 扩展更改为 PDO。PDO 将为您转义值。在 PHP 手册中阅读有关 PDO 的更多信息(那里有很多示例)。
另请注意,您必须修改以下代码,因为我无法猜测数据库中聊天表的字段名称是如何命名的。所以你必须调整下面的插入语句。
// database config parameters
$dbhost = "localhost";
$dbname = "test";
$dbuser = "root";
$dbpass = "";
try {
// try to set up a db connection
$db = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
// insert the data using PDO's prepared statements
// you have to adapt this line to the field names of your chat table!!
$sql = "INSERT INTO chat (sendtime,caster,msg) VALUES (:sendtime,:caster,:msg)";
$sth = $db->prepare($sql);
$sth->execute(array(
':caster' => $_POST['caster'],
':sendtime' => $_POST['sendTime'],
':msg' => $_POST['msgText']
));
// Get everything
$sth = $db->prepare("SELECT * FROM chat");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
// your code to format and return the data goes here
print json_encode($result);
}
catch (PDOException $e) {
// if anything related to the database goes wrong, catch the exceptions
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$db = null;
Actionscript 将收到一个类似于以下内容的 JSON 对象:
[
{
"sendtime":"2013-04-14",
"caster":"person1",
"msg":"Message 1"
},
{
"sendtime":"2013-04-15",
"caster":"person2",
"msg":"Message 2"
}
]
如您所见,JSON 没有特定的变量名称,例如问题中使用 GET 的版本(问题中使用的方法不适用于大型结果列表)。
那么如何在 Actionscript 中使用 JSON 文档呢?我不是一个动作脚本程序员,但这个 Stackoverflow 帖子看起来是这个问题的一个合理答案:
在 Actionscript 中获取和解析 JSON