PDO选择行 [英] PDO selecting rows

查看:73
本文介绍了PDO选择行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

So I just started learning PDO (and to be honest, I'm not fairly sure what I'm doing) and I want my code to get the number of rows that have the username that the user inputted, so that I would be able to check if the username already exists. This is what I have so far.

$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()

However this gives me an error that says Fatal error: Call to undefined method PDO::bindParam() in /var/www/register.php on line 41

推荐答案

一些小问题:

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

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

The result of a call to PDO::prepare() is a PDOStatement object, which supports the bindParam() method.

一个人必须 execute 一条语句,然后才能获得它返回的行数.

One must execute a statement before one can obtain the number of rows that it returns.

因此:

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

这篇关于PDO选择行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆