Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何从actionscript进行SQL查询?_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 如何从actionscript进行SQL查询?

Actionscript 3 如何从actionscript进行SQL查询?,actionscript-3,flash,Actionscript 3,Flash,如何从actionscript进行SQL查询?并呈现所有结果据我所知,在Flex中使用JDBC或ODBC并没有真正的等价物。最有可能的是,由于Flex/Flash通常是客户端,而DB通常是服务器端(共享),因此没有真正尝试将其作为交付内容。一般来说,你可以使用java、php、C++、ASP.NET、Python、C++或其他服务器端程序来建立与DB的连接并运行查询。我所看到的与您的问题最接近的是:但仅适用于AIR,而不适用于远程SQL连接。我不完全确定编写一个类似JDBC的接口/实现来连接到任

如何从actionscript进行SQL查询?并呈现所有结果

据我所知,在Flex中使用JDBC或ODBC并没有真正的等价物。最有可能的是,由于Flex/Flash通常是客户端,而DB通常是服务器端(共享),因此没有真正尝试将其作为交付内容。一般来说,你可以使用java、php、C++、ASP.NET、Python、C++或其他服务器端程序来建立与DB的连接并运行查询。我所看到的与您的问题最接近的是:但仅适用于AIR,而不适用于远程SQL连接。我不完全确定编写一个类似JDBC的接口/实现来连接到任何给定的数据库需要做多少工作,我想这部分取决于DBMS的文档化程度。。。不管怎样,我猜这都是一项繁重的工作

编辑


好吧,在某种程度上,我确实接受了我的话,显然这是可行的:

在我所知道的Flex中,没有真正的JDBC或ODBC等价物。最有可能的是,由于Flex/Flash通常是客户端,而DB通常是服务器端(共享),因此没有真正尝试将其作为交付内容。一般来说,你可以使用java、php、C++、ASP.NET、Python、C++或其他服务器端程序来建立与DB的连接并运行查询。我所看到的与您的问题最接近的是:但仅适用于AIR,而不适用于远程SQL连接。我不完全确定编写一个类似JDBC的接口/实现来连接到任何给定的数据库需要做多少工作,我想这部分取决于DBMS的文档化程度。。。不管怎样,我猜这都是一项繁重的工作

编辑


好吧,实际上在某种程度上接受了我的话,显然这是可行的:

您必须调用服务器端脚本(例如php),然后检索该脚本的输出

private var _loader:URLLoader;
private var _request:URLRequest;

private function loadData():void {
    _loader = new URLLoader();
    _request = new URLRequest("path/to/your/phpscript");
    _request.method = URLRequestMethod.POST;
    _loader.addEventListener(Event.COMPLETE, onLoadData);
    _loader.addEventListener(IOErrorEvent.IO_ERROR, onDataFailedToLoad);
    _loader.addEventListener(IOErrorEvent.NETWORK_ERROR, onDataFailedToLoad);
    _loader.addEventListener(IOErrorEvent.VERIFY_ERROR, onDataFailedToLoad);
    _loader.addEventListener(IOErrorEvent.DISK_ERROR, onDataFailedToLoad);
    _loader.load(_request);
}
private function onLoadData(e:Event):void {
    trace("onLoadData",e.target.data);
}
private function onDataFailedToLoad(e:IOErrorEvent):void {
    trace("onDataFailedToLoad:",e.text);
}
php脚本示例:

<?php

    // defining main variables
    $dbHost = "localhost";
    $dbUser = "root";
    $dbPass = "";
    $dbName = "test";
    $dbTable = "data";

    // connecting and selecting database
    @mysql_connect($dbHost, $dbUser, $dbPass) or die(mysql_error());
    @mysql_select_db($dbName) or die(mysql_error());

    // getting data
    $data = "";
    $res = mysql_query("SELECT * FROM ".$dbTable." ORDER BY id") or die(mysql_error());
    while($row = mysql_fetch_object($res)) {
        $data .= "nname=".$row->name.", ";
        $data .= "city=".$row->city;
    }
    echo $data;

?>

为了更好的工作流程,我建议查看AMF


您必须调用服务器端脚本(例如php),然后检索该脚本的输出

private var _loader:URLLoader;
private var _request:URLRequest;

private function loadData():void {
    _loader = new URLLoader();
    _request = new URLRequest("path/to/your/phpscript");
    _request.method = URLRequestMethod.POST;
    _loader.addEventListener(Event.COMPLETE, onLoadData);
    _loader.addEventListener(IOErrorEvent.IO_ERROR, onDataFailedToLoad);
    _loader.addEventListener(IOErrorEvent.NETWORK_ERROR, onDataFailedToLoad);
    _loader.addEventListener(IOErrorEvent.VERIFY_ERROR, onDataFailedToLoad);
    _loader.addEventListener(IOErrorEvent.DISK_ERROR, onDataFailedToLoad);
    _loader.load(_request);
}
private function onLoadData(e:Event):void {
    trace("onLoadData",e.target.data);
}
private function onDataFailedToLoad(e:IOErrorEvent):void {
    trace("onDataFailedToLoad:",e.text);
}
php脚本示例:

<?php

    // defining main variables
    $dbHost = "localhost";
    $dbUser = "root";
    $dbPass = "";
    $dbName = "test";
    $dbTable = "data";

    // connecting and selecting database
    @mysql_connect($dbHost, $dbUser, $dbPass) or die(mysql_error());
    @mysql_select_db($dbName) or die(mysql_error());

    // getting data
    $data = "";
    $res = mysql_query("SELECT * FROM ".$dbTable." ORDER BY id") or die(mysql_error());
    while($row = mysql_fetch_object($res)) {
        $data .= "nname=".$row->name.", ";
        $data .= "city=".$row->city;
    }
    echo $data;

?>

为了更好的工作流程,我建议查看AMF


您确实不想从Flex进行SQL查询连接,尤其是当应用程序分发给用户时。Flash/Flex应用程序可以很容易地反编译成可读的源代码,如果SQL连接字符串在源代码中,则会出现各种安全问题。让Flex使用RESTfulWebAPI和服务器端语言(如PHP、Python、Perl或Node)来为您处理SQL数据是一个非常好的主意


即使您的应用程序是内部的,让Flex不直接操作数据库仍然是一个更好的“纸面”概念。

您真的不想从Flex进行SQL查询连接,尤其是当应用程序分发给用户时。Flash/Flex应用程序可以很容易地反编译成可读的源代码,如果SQL连接字符串在源代码中,则会出现各种安全问题。让Flex使用RESTfulWebAPI和服务器端语言(如PHP、Python、Perl或Node)来为您处理SQL数据是一个非常好的主意

即使您的应用程序是内部的,它仍然是一个更好的“纸面”概念,以避免Flex直接操纵数据库