PDO语句在实时主机上不起作用


PDO statements not working on a live host

PDO语句在localhost上工作,但在活动主机上无法工作。这里有一个在localhost上运行良好的示例,但rowCount()在活动主机上总是返回0。有人请帮帮我。

$stmt = $pdo->prepare("SELECT * FROM customer WHERE email = :email AND password = :password");
        $stmt->execute(array(
            ':email' => $uemail,
            ':password' => $pass
        ));
        $count = $stmt->rowCount();

PDOStatement::rowCount

PDOStatement::rowCount()返回受DELETE、INSERT或UPDATE语句影响的行数。

这对SELECT不起作用,讽刺但真实:)

解决方法:

对于大多数数据库,PDOStatement::rowCount()不会返回受SELECT语句影响的行数。相反,使用PDO::query()发出一个SELECT COUNT(*)语句,该语句的谓词与您想要的SELECT语句的谓词相同,然后使用PDOStatement::fetchColumn()检索将返回的行数。然后,您的应用程序可以执行正确的操作。

甚至不应该在本地主机上工作。您在localhost上对结果的解释不正确。

手动