Javascript 单击链接时运行PHP SQL查询命令
我希望在单击链接时有一个SQL查询,到目前为止,这是我所拥有的: mainpage.php:Javascript 单击链接时运行PHP SQL查询命令,javascript,php,sql,Javascript,Php,Sql,我希望在单击链接时有一个SQL查询,到目前为止,这是我所拥有的: mainpage.php: function deleteImage1() { $.post("delete_image.php", { num:1, id:<?php echo $id; ?> }, function(data,status){ alert("Data: " + data + "\nStatus: " + status); }); return false; } <a
function deleteImage1() {
$.post("delete_image.php", { num:1, id:<?php echo $id; ?> }, function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
return false;
}
<a href="#" onclick="deleteImage1()">Delete Image</a>
函数deleteMage1(){
$.post(“delete_image.php”,{num:1,id:},函数(数据,状态){
警报(“数据:+数据+”\n状态:+状态);
});
返回false;
}
删除_image.php:
<?php
// $connect stuff here
$num = $_GET['num'];
$id = $_GET['id'];
if ($num === '1') {
$image_num == '';
} else {
$image_num == $num;
}
$sqlCommand = mysql_query("UPDATE alpacas1 SET image$image_num='' WHERE id=$id");
if (!$sqlCommand) {
die('Invalid query: ' . mysql_error());
} else {
echo "Updated successfully!";
}
?>
现在,当我单击“删除图像”链接时,它尝试运行该函数,它确实运行了,但在弹出窗口中返回如下:
数据:无效查询:您的SQL语法有错误;检查
与右边MySQL服务器版本对应的手册
在第1行使用near“的语法。状态:成功 但当我重新加载页面(或查看数据库)时,图像字段未更改为“”(或null) 此外,我还测试了SQL查询,所以它不是这样。我在浏览器中访问delete_image.php,id&num变量被“发布”(例如delete_image.php?num=1&id=20),然后在浏览器中访问它,它成功地删除了图像,并给我消息“更新成功!“
我猜这与我的Javascript有关,因为我是一个初学者!谢谢你的帮助!我应该早点注意到这一点 您使用的是jQuery
.post()
,但是您访问变量的方式就像它们是通过GET
发送的一样。您应该使用$\u post
或$\u REQUEST
来提取数据:
$num = $_POST['num'];
$id = $_POST['id'];
如果没有正确的变量,查询将显示:
更新羊驼1组图像='',其中id=“
因此,MySQL错误被返回。mainpage.php中声明
$id
的代码是什么?对不起,页面很大,没有包含这个,但是它是一个php GET函数,它可以得到它,并且可以工作,因为我在页面上的许多其他函数都使用它。下面是我在Google Chrome上“检查元素”时的函数。如您所见,$id变量在被询问时正确显示<代码>函数deleteMage1(){$.post(“delete_image.php”),{num:1,id:286},函数(数据,状态){alert(“数据:+data+”\nStatus:+status);});返回false;}如果在实时站点中使用,此代码看起来极易受到SQL注入的攻击。我强烈建议使用或与参数化查询一起使用。它是受密码保护的后端,一个用户将使用它,因此SQL注入不是问题。啊,我也应该抓住它!!谢谢,伙计,这正是我所需要的,我已经尝试了太多的东西,但我自己的代码中却丢失了。没问题,有时候只需要第二双眼睛就能捕捉到简单的错误。