我在从数据库中删除行时遇到问题。我尝试绑定参数(id),根据该参数必须删除一行。它返回成功消息,表明该行已被删除但该行实际上并未从数据库中删除。 这是我使用ajax调用删除脚本的代码:
<script>
$("#del").click(function(){
var id;
$("input:checked").each(function(){
id=$(this).parent().parent().children(".id").html();
});
var datastring=JSON.stringify(id);
$.ajax({
type:'post',
url:'delete.php',
data: {data:datastring},
success: function(data){
alert(data);
}
});
});
</script>
这是删除脚本(delete.php)
if(isset($_POST["data"]))
{
$id=$_POST["data"];
$db=mysqli_connect("localhost","root","","products");
if($db)
{
$query=mysqli_prepare($db,"DELETE FROM product_info WHERE prod_id=?");
$query->bind_param('i',$id);
$result=$query->execute(array($id));
if($result)
echo "Deleted successfully";
else
echo "Error in deletion of product";
$query->close();
}
else
echo "Error Connecting to DB";
}
else
echo "POST not set";
声明&#34;已成功删除&#34;回显并发出警报但该行实际上并未从数据库中删除。如果我省略bind_param部分并直接在查询中指定id,则删除该记录。 救命!
答案 0 :(得分:0)
好的,问题已经解决了。导致问题的陈述是这样的:
var datastring=JSON.stringify(id);
相反,我在ajax调用中做到了这一点
$.ajax({
type:'post',
url:'delete.php',
data: {data:id}, //instead of sending datastring, I sent the id directly
success: function(data){
alert(data);
}
});