这是我的代码:
$con=mysqli_connect("localhost","name","pass","bird") ;
$result = mysqli_query($con,"SELECT * FROM bird");
mysqli_query($con,"INSERT INTO 'bird' (`id`, `name`, `latin`, `number`) values (0,'d','cwer','73')");
第一次,我可以看到这些值已被添加,但是当我重新加载时,它还没有再做了,它应该是这样吗?
因此,如果我每次重新加载时都希望它运行,我该怎么做?
答案 0 :(得分:5)
您可能对id
列(或该查询中的其他列)有唯一约束,当您尝试使用相同的ID添加第二行时,它会被MySQL拒绝。
您应该在代码中进行错误检查。您应该检查插件会影响多少行(使用mysqli_affected_rows()
),如果数字为零,则从MySQL获取错误消息(使用mysqli_error()
)。
$result = mysqli_query($con,"INSERT INTO 'bird' (`id`, `name`, `latin`, `number`) values (0,'d','cwer','73')");
if (mysqli_affected_rows() === 0) {
echo mysqli_error($con);
}
@ DaveChen上面的评论是解决您(潜在)问题的好方法。如果还没有,请创建id
列auto increment,然后将其从查询中删除。
mysqli_query($con,"INSERT INTO 'bird' (`name`, `latin`, `number`) values ('d','cwer','73')");
答案 1 :(得分:0)
如果您的ID列是自动增量且唯一的:将代码更改为:
$con=mysqli_connect("localhost","name","pass","bird") ;
$result = mysqli_query($con,"SELECT * FROM bird");
mysqli_query($con,"INSERT INTO 'bird' (`id`, `name`, `latin`, `number`) values ('','d','cwer','73')");