我正在尝试使用 ActionScript 3 从数据库中删除数据。
我已经在我的服务器上创建了一个php:
<?php
include ("shared/connect.php");
$idToDelete = $_POST['idToDelete'];
$result = mysqli_query($conn,"
DELETE FROM `annoncesNew` WHERE id=$idToDelete");
?>
然后我必须将变量idToDelete
发送到这个 php 才能删除该条目。
所以我做了:
deleteBtn.addEventListener(MouseEvent.CLICK, deleteThisAnnonce);
function deleteThisAnnonce(event:MouseEvent):void {
trace("deleteThisAnnonce");
var variablesDelete:URLVariables = new URLVariables();
var varDelete:URLRequest = new URLRequest("http://www.***com/***/deleteAnnonce.php");
varDelete.method=URLRequestMethod.POST;
varDelete.data=variablesDelete;
var varLoaderDelete:URLLoader = new URLLoader;
varLoaderDelete.dataFormat=URLLoaderDataFormat.VARIABLES;
varLoaderDelete.addEventListener(Event.COMPLETE,completeHandlerDelete);
ValidateAndSendDelete();
function completeHandlerDelete(event:Event):void{
trace("Data Sent");
}
function ValidateAndSendDelete():void{
trace("deleting"+item.id); //item.id is my the ID. When I trace the output is 144 so it's good.
variablesDelete.idToDelete = item.id;
varLoaderDelete.load(varDelete);
}
}
因此,使用此代码,它应该删除id = 144的数据。但是单击deleteBtn
时出现此错误:Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs..
(所有跟踪都正常工作,但我的数据未删除)。
我已经通过更改DELETE FROM
annoncesNew WHERE id=$idToDelete"来尝试我的php);with
从annoncesNew WHERE id=144");
中删除并在我的网络浏览器上执行它,它有效(ID 为 144 的行已删除)。
奇怪的是,该行使用我的 AS3 代码删除(因此代码正常工作),但它还是抛出了此错误 2101。知道为什么吗?
感谢
我相信
问题不在于您的 AS3 代码,而在于您的 PHP 脚本没有将任何值返回给 Flash。尝试将其添加到您的 PHP 脚本中:
echo "Status=true";
在 AS3 中可能需要它:
varLoaderDelete.dataFormat = URLLoaderDataFormat.TEXT;