我在从数据库中删除行时遇到问题。我尝试绑定(bind)参数(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";
回显并发出警报“已成功删除”语句,但该行实际上并未从数据库中删除。如果我省略bind_param部分并直接在查询中指定id,那么记录将被删除。 帮助!
最佳答案
好的,问题已经解决了。导致问题的语句是这样的:
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);
}
});
关于php - 使用 PHP 从 mysql 数据库删除行时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27314171/