我准备好的声明更新问题

时间:2009-11-17 11:02:00

标签: php mysqli prepared-statement

$query = "UPDATE kids_entry SET entries=? WHERE parentsemail=?";
$stmt1 = mysqli_prepare($connection, $query);
mysqli_stmt_bind_param($stmt1, 'is',$entries,$parentsemail);
mysqli_execute($stmt1);
if(mysqli_stmt_affected_rows($stmt1) != 1)
    die("issueasdass"); 
mysqli_stmt_close($stmt1);

上面的代码在另一个页面上对我有用,但我似乎无法在这里工作。在另一个页面上,要更新的设置是硬编码的,并且不是动态的,这可能就是为什么它不适合我。有人能告诉我我做错了什么吗?感谢

2 个答案:

答案 0 :(得分:0)

条目是否可能与数据库中已存在的值相同?如果没有任何变化,我认为*_affected_rows不会返回1。 'parentsemail'可能有超过1个条目吗?那么也许mysqli_stmt_affected_rows会返回2之类的东西?可以告诉我们mysql_stmt_affected_rows返回的内容,而不是检查1。例如,来自docs:

  

大于零的整数表示   受影响的行数或   检索。零表示没有   更新的记录   UPDATE / DELETE语句,没有行   匹配查询中的WHERE子句   或者还没有查询   执行。 -1表示查询   已返回错误。

答案 1 :(得分:0)

这个问题似乎已经解决了。什么都没有改变,但现在它有效!