【问题标题】:PDO selecting rowsPDO 选择行
【发布时间】:2013-10-19 20:33:00
【问题描述】:

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

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

一些小问题:

  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;

【讨论】:

    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 2013-09-08
    • 2017-03-01
    • 1970-01-01
    • 2017-12-15
    相关资源
    最近更新 更多