0

所以我刚开始学习 PDO(老实说,我不太确定自己在做什么),我希望我的代码能够获取用户输入的用户名的行数,这样我就能够检查用户名是否已经存在。这就是我到目前为止所拥有的。

$username = $_POST['username'];
$user_check = $dbh->query("SELECT * FROM users WHERE username = :username");
$dbh->bindParam(':username', $username, PDO::PARAM_STR);
$user_row_count = $user_check->rowCount();
echo $user_row_count;

但是,这给了我一个错误,上面写着致命错误:在第 41 行的 /var/www/register.php 中调用未定义的方法 PDO::bindParam()

4

1 回答 1

0

一些小问题:

  1. PDO::query()实际执行作为其参数提供的 SQL;要使用包含参数占位符的 SQL,您必须首先准备查询,然后执行它。

  2. 调用的结果PDO::prepare()是一个PDOStatement支持该bindParam()方法的对象。

  3. 必须先执行一条语句,然后才能获得它返回的行数。

所以:

$username = $_POST['username'];
$user_check = $dbh->prepare("SELECT * FROM users WHERE username = :username");
$user_check->bindParam(':username', $username, PDO::PARAM_STR);
$user_check->execute();
$user_row_count = $user_check->rowCount();
echo $user_row_count;
于 2013-10-19T20:39:03.097 回答