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

时间:2013-10-15 23:22:23

标签: 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 href="#" onclick="deleteImage1()">Delete Image</a>

delete_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行”附近使用的语法   状态:成功

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

如果没有正确的变量,您的查询将显示:

UPDATE alpacas1 SET image='' WHERE id="

因此返回MySQL错误。