Javascript 单击链接时运行PHP SQL查询命令

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

我希望在单击链接时有一个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 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注入不是问题。啊,我也应该抓住它!!谢谢,伙计,这正是我所需要的,我已经尝试了太多的东西,但我自己的代码中却丢失了。没问题,有时候只需要第二双眼睛就能捕捉到简单的错误。