我正在尝试删除数据库中的特定字段(不是整行)。 但是现在,它并没有删除我数据库中的任何内容。
当用户点击删除按钮时,我想清空字段,保留图像的路径。
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查询做错了什么?
答案 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'");