你在找什麼是「fetchAll」。請注意,您的代碼對SQL注入是開放的,通過將惡意值傳遞給PHP腳本可以很容易地刪除數據庫。我已將代碼從已棄用的Mysql擴展名更改爲PDO。 PDO將爲您逃避價值。 閱讀更多關於PDO的PHP手冊(大量的例子)。
另請注意,您必須修改以下代碼,因爲我無法猜測數據庫中聊天表的字段名是如何命名的。所以你必須調整下面的插入語句。
// 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;
動作腳本會收到一個JSON對象尋找與此類似:
[
{
"sendtime":"2013-04-14",
"caster":"person1",
"msg":"Message 1"
},
{
"sendtime":"2013-04-15",
"caster":"person2",
"msg":"Message 2"
}
]
正如你可以看到JSON有沒有具體的變量名稱就像在這個問題習慣的版本(該方法在問題中使用不適用於大的結果列表)。
那麼你如何使用Actionscript中的JSON文檔?我不是一個程序員動作,但這個職位#1貌似合理的回答了這個問題:
Get and parse JSON in Actionscript
確定。但是,我現在應該如何獲得變量? 我不知道他們的名字。 –
檢查「打印json_encode($ result);」而不是print_r($ result)是否與Actionscript結合使用。這會將關聯數組轉換爲JSON,並且使用Actionscirpt遍歷數組元素應該很容易。 – herrjeh42
soooo,我會得到數組命名結果爲? –