Actionscript 3 在AIR中使用PHP读取MySQL结果

Actionscript 3 在AIR中使用PHP读取MySQL结果,actionscript-3,air,Actionscript 3,Air,我想知道是否有人可以解释我如何在AS3中读取MySQL结果数组 我正在使用: var loader:URLLoader = new URLLoader(); var urlReq:URLRequest = new URLRequest("http://domain.com/get-api.php"); var urlVars:URLVariables = new URLVariables(); loader.dataFormat = flash.net.URLLoaderDataFormat.T

我想知道是否有人可以解释我如何在AS3中读取MySQL结果数组

我正在使用:

var loader:URLLoader = new URLLoader();
var urlReq:URLRequest = new URLRequest("http://domain.com/get-api.php");
var urlVars:URLVariables = new URLVariables();
loader.dataFormat = flash.net.URLLoaderDataFormat.TEXT;
urlReq.method = URLRequestMethod.POST;
urlReq.data = urlVars;
urlVars.mySubmittedRateID = GlobalVariables.mySubmittedRateID;
urlVars.myPostcode = GlobalVariables.currentPostcode;
loader.addEventListener(flash.events.Event.COMPLETE, getDataOnComplete);
loader.load(urlReq);
将参数(实际上是2)传递给get-api.php文件。在文件中,我将读取参数和一个普通的SQL select where语句,该语句获取与参数匹配的所有结果

我的getDataOnComplete函数是:

private function getDataOnComplete(event:flash.events.Event):void
{
    var loader:URLLoader = new URLLoader(event.target);
    var resultsArray:Array = JSON.decode(loader.data);
}
我的PHP:

$row_array['done'] = "true";
return json_encode($row_array);
错误:

Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

由于某些原因,我甚至无法使用getDataOnComplete函数。

您的php mysql结果将是数组

在php端,您需要将结果数组转换为json_encode($result_array),如

在as3侧

您可以使用具有本机JSON类的最新AIR SDK(此处使用AIR类)或解析JSON数据

private function getDataOnComplete(event:flash.events.Event):void
{
  var resultObj:Object = event.target.data;
  var resultsArray:Object = JSON.stringify(resultObj);
}

有关详细信息,请参见AS3中的For循环以获取每条记录?我得到一个错误:error:error#2101:传递给URLVariables的字符串。decode()必须是包含名称/值对的URL编码查询字符串。在flash.net::URLVariables/decode()在flash.net::URLVariables()在flash.net::URLLoader/onComplete()处出现错误时,请将loader.dataFormat=URLLoaderDataFormat.VARIABLES更改为loader.dataFormat=URLLoaderDataFormat.TEXT。我仍然收到相同的错误。我已经用最新的代码更新了我的问题。签入php端不返回,只需使用echo语句即可。还有getDataOnComplete()有点变化,它对我有用。
private function getDataOnComplete(event:flash.events.Event):void
{
  var resultObj:Object = event.target.data;
  var resultsArray:Object = JSON.stringify(resultObj);
}