仅针对特定字段的删除查询问题

时间:2013-07-09 21:04:12

标签: php mysql database

我正在尝试删除数据库中的特定字段(不是整行)。 但是现在,它并没有删除我数据库中的任何内容。

当用户点击删除按钮时,我想清空字段,保留图像的路径。

HTML部分:

<div class="delete_image"><a href="#" id="<?php echo $recipe_path ?>"   
class="delete_image">Remove!</a></div> 

AJAX部分:

$('.delete_image').on("click",function() 
{
var ID = $(this).attr("id");
var dataString = '$recipe_path='+ ID;
if(confirm("Are you sure you want to delete this image ?"))
  {
   $.ajax({
   type: "POST",
   url: "remove.php",
   data: dataString,
   cache: false,  
   });
}
return false;
});

PHP部分(remove.php):

<?php
include "includes/db.php";

if ($_POST['recipe_path'])
  {
   $recipe_path = $_POST['recipe_path'];
   $sql = query("DELETE FROM recipes WHERE $recipe_path = '$recipe_path' ");
  }
?>

我是否在使用SQL查询做错了什么?

2 个答案:

答案 0 :(得分:2)

不应该

$sql = query("DELETE FROM recipes WHERE recipe_path = '$recipe_path' ");

为什么$recipe_path

还要确保在页面准备就绪后运行该功能。

$(function(){
     $('.delete_image').on("click",function() 
    {
    var ID = $(this).attr("id");
    var dataString = '$recipe_path='+ ID;
    if(confirm("Are you sure you want to delete this image ?"))
      {
       $.ajax({
       type: "POST",
       url: "remove.php",
       data: dataString,
       cache: false,  
       });
    }
    return false;
    });
});

正如已经指出的那样,DELETE将删除整行。

答案 1 :(得分:1)

您的dataString没有正确的序列化语法,这就是代码无效的原因,请尝试将其更改为:

var dataString = 'recipe_path='+ ID;

现在对于UPDATE代码,假设上面的ID引用了配方路径,你需要做这样的事情:

$sql = query("UPDATE recipes SET recipe_path = NULL WHERE recipe_path = '$recipe_path'");