【发布时间】:2014-11-12 11:10:03
【问题描述】:
这很奇怪,查询执行得很好并将数据插入到表中,但我受影响的行显示在负数而不是 1。有人知道为什么会这样吗?
connect.php:
<?php
error_reporting(0);
$db = new mysqli('localhost', 'root', 'pass', 'db');
?>
这里是主要代码:
<?php
include 'connect.php';
include 'blowfish.php';
if($_POST['email'] == true)
{
if($db -> connect_errno)
{
echo "Could not connect to the database, please try again later...";
}
else
{
$email = $_POST['email'];
$query = "SELECT id FROM users WHERE email = ?";
$statmnt = $db -> prepare($query);
$statmnt-> bind_param("s",$email);
$statmnt-> execute();
$statmnt-> bind_result($result);
$statmnt-> fetch();
$statmnt-> reset();
if($result)
{
$id = $result;
$result = "";
$randomString = generateRandomString(50); // Generate random string
$query = "UPDATE users SET emailString = ? WHERE id =?";
$statmnt= $db -> prepare($query);
$statmnt-> bind_param("si",$randomString,$id);
$statmnt-> execute();
$statmnt-> bind_result($result);
$statmnt-> fetch();
$statmnt-> reset();
$test = $db -> affected_rows;
echo $test;
}
else
{
echo "That Email Address is not registered...";
}
}
}
else
{
echo "No Email received...";
}
?>
$test 返回“-1”
【问题讨论】:
-
"大于零的整数表示受影响或检索到的行数。零表示没有为 UPDATE 语句更新记录,没有行匹配查询中的 WHERE 子句或没有查询已执行。-1 表示查询返回错误。” (Source)
-
您希望从
UPDATE查询中得到什么样的结果以及为什么要绑定它?
标签: php mysqli rows-affected