3

这很奇怪,查询执行得很好并将数据插入到表中,但是我受影响的行显示在负面而不是 1。有谁知道为什么会这样?

连接.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”

4

1 回答 1

2

您应该在调用或操作affected_rows之前获得价值。reset()close()$statmnt

于 2015-08-31T06:26:55.280 回答