所以我刚开始学习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()
答案 0 :(得分:0)
一些小问题:
PDO::query()
实际执行提供的SQL作为其参数;要使用包含参数占位符的SQL,您必须先准备查询,然后执行它。
对PDO::prepare()
的调用的结果是PDOStatement
对象,支持bindParam()
方法。
必须执行语句才能获得它返回的行数。
因此:
$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;