我想用flash(文本输入)更新数据库
这是我的PHP代码
<?php
mysql_pconnect ("localhost", "root", "");
mysql_select_db ("adaptasi");
$isi = isset($_POST['OutData']);
$query2 = "UPDATE materi SET isi='$isi' WHERE id = 1";
$result2=mysql_query($query2) or die("Query Failed : ".mysql_error());
?>
这是我的动作2
function SubmitData()
{
trace("Sending");
var OutData = new LoadVars();
text_morfologi.text = OutData.OutData;
filepath = "http://localhost/adaptasi/";
OutData.sendAndLoad(filepath + "editmorfologi.php", OutData, "POST");
}
btnsave.onRelease = function()
{
SubmitData();
btnedit.visible = true;
btnsave.visible = false;
};
但是数据库中的结果是'1'而不是我在文本字段中输入的文本。 感谢
答案 0 :(得分:2)
您的代码中存在一些问题:
ActionScript 2:
要使用LoadVars
对象发送数据,您必须将其作为其属性附加到该对象,如果您希望从服务器端脚本接收响应,则可以使用LoadVars.sendAndLoad()
但如果您只想在不等待任何响应的情况下发送该数据,您可以使用LoadVars.send()
。
假设您将使用sendAndLoad()
函数,因此您的代码可以是这样的:
var url:String = 'http://www.example.com/update.php';
// the LoadVars object that will receive (load) a response from the server
var receiver:LoadVars = new LoadVars();
receiver.onLoad = function(success:Boolean)
{
if (success) {
trace(receiver.response); // gives for example : update successful
} else {
trace('error');
}
}
// the LoadVars object which will send (post) some data to the server
var sender:LoadVars = new LoadVars();
sender.id = txt_id.text;
sender.name = txt_name.text;
sender.sendAndLoad(url, receiver); // we don't set the method to POST because that's its default value
PHP:
正如许多评论中所提到的,PHP的isset()
函数用于验证变量是否已设置且不是NULL并且它返回一个布尔值(TRUE
的{{1}}),其中是FALSE
为1
提供TRUE
和FALSE
提供``(空字符串)。
在您的情况下,根据您的说法,我认为,因为变量$_POST['OutData']
显然已设置,isset($_POST['OutData'])
为true,将$isi
的值设置为{{1所以你会得到:
1
但是根据你发布的代码,我认为你应该得到:
$query2 = "UPDATE materi SET isi='1' WHERE id = 1";
现在回到我们当前的例子,我们将获得AS2脚本发送的两个POST变量(id和name)来更新数据库,然后在数据成功更新后返回响应:
$query2 = "UPDATE materi SET isi='' WHERE id = 1";
当然,我在这里尝试根据您当前的代码给出一个非常简单的工作代码示例。您应该知道,对于您的PHP方面,PHP 5.5.0中不推荐使用“mysql”扩展,并且已在PHP 7中删除,因此您应该考虑使用casting (converting) to a string或"mysqli"扩展,了解更多信息看看"PDO",也不要忘记here,sanitize和validate任何用户的数据,......对于ActionScript方面,也许它就是是时候开始了escape ......
希望可以提供帮助。