0

我希望在单击链接时进行 SQL 查询,到目前为止,这就是我所拥有的:

主页.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>

删除图像.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 行的 " 附近使用正确的语法。
状态:成功

但是当我重新加载页面时,(或查看数据库),图像字段并没有更改为''(或空)。

另外,我已经测试了 SQL 查询,所以不是这样。我通过在浏览器中访问 delete_image.php 并“发布”了 id 和 num 变量(例如 delete_image.php?num=1&id=20)并在浏览器中访问它,它成功地删除了图像并给了我消息“更新成功!”。

我猜这是我的 Javascript 的问题,因为我是初学者!谢谢你的帮助!

4

1 回答 1

2

我应该早点注意到这一点...

您正在使用 jQuery .post(),但您正在访问变量,就好像它们是通过GET. 您应该使用$_POST$_REQUEST提取数据:

$num = $_POST['num'];
$id = $_POST['id'];

如果没有适当的变量,您的查询将显示:

UPDATE alpacas1 SET image='' WHERE id="

因此返回 MySQL 错误。

于 2013-10-15T23:41:53.783 回答