PDO选择行

时间:2013-10-19 20:33:00

标签: php mysql pdo

所以我刚开始学习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()

1 个答案:

答案 0 :(得分:0)

一些小问题:

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

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

  3. 必须执行语句才能获得它返回的行数。

  4. 因此:

    $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;