4

これでいくつかのテストを行っているところですが、これが正しい方法であるかどうかはわかりません。クエリは行を更新します..しかし、ected_rows は常に 0 を返します..なぜですか?

<?php 

$connection = new mysqli('localhost', 'user', 'pass', 'db');
if (mysqli_connect_errno()) {
   printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());
   exit;
}

$email      = $connection->real_escape_string($_GET['email']);
$activation = $connection->real_escape_string($_GET['hash']);

//$query =  $connection->query("SELECT email, activationCode, active FROM users WHERE email='".$email."' AND hash='".$activation."' AND active='0'");
$select = $connection->query("UPDATE users SET active = '1' WHERE email='".$email."' AND activationCode='".$activation."' AND active='0'");


printf("Affected rows (UPDATE): %d\n", $select->affected_rows);



$connection->close();
?>
4

1 に答える 1

6

$select->affected_rowsというよりは言い$connection->affected_rowsます。

$select->affected_rows接続は、クエリ結果に関するデータを含むデータベースマネージャオブジェクトを保持している間、最後のクエリによって影響を受けた行数に関する情報を含みます (成功したかどうかに関係なく)。

于 2011-03-25T21:16:33.553 に答える