Mysqli stmt num_rows始终为0

时间:2013-11-01 07:49:02

标签: php mysqli prepared-statement

我觉得一切都好。邮件存储在DB但输出为0.我错了?

class connection {
    private $mail;
    private $conn;
    function connect() {
        $this->conn = new mysqli ('**','**','**','**');
    }
    function control () {
        $this->mail = 'aa@a.com';
        $checkmail = 'SELECT * FROM table WHERE email = ?';
        if ($stmt = $this->conn->prepare($checkmail)) {
            $stmt->bind_param('s', $this->mail);
            $stmt->execute;
            $stmt->store_result();
            $count = $stmt->num_rows;
            echo $count;
        }
    }
}
$a = new connection();
$a->connect();
$a->control();

感谢您的回复。

2 个答案:

答案 0 :(得分:1)

execute是一种方法:

$stmt->execute();

答案 1 :(得分:1)

在处理程序时,您应始终报告错误。
在开发PC上,可以直接在浏览器中显示它们,而在生产服务器上则必须检查它们的错误日志。

仅仅因为

Notice: Undefined property: mysqli_stmt::$execute in ...

错误信息清晰明确。