php - 这个 MySQL 查询有什么问题? (使用 PDO)

标签 php mysql pdo

这是我第一次尝试使用命名占位符,所以我确定我在某处有语法错误......我只是没有看到它。我按照我找到的指示 here .如果密码与 $pass 匹配,我希望数组 $authResults 包含具有 $user 信息的行。

如果我的查询只是 SELECT * FROM user 它就可以了。显然,这在生产环境中行不通。 :-)

这是我目前所拥有的:

$user= "Test";
$pass= "ba6c064dfdb1b7b4938bf82585a8332c89270303b6d75007f0b25feffe33b90bd34d3732acf4be708c85708c39ff6c28b87235663238b8fbfe2c4439258cc883";

$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'admin', 'pass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//query database to see if username/password match up
$authQuery = $db->prepare("SELECT * FROM user WHERE username=:usr AND password=:pwd");  // search for username and password
$authQuery->bindValue(':usr', $user, PDO::PARAM_STR);
$authQuery->bindValue(':pwd', $pass, PDO::PARAM_STR);
$authQuery->execute();
$authResults = $authQuery->fetchAll(PDO::FETCH_ASSOC);


echo "<br><br>authResults:<pre>";
print_r($authResults);
echo "</pre>";

想法?

这是在我的文件末尾回显的输出:

authResults:
Array
(
)

没有错误信息。 PHP 变量或 MySQL 查询是否有字符限制?

最佳答案

这仅仅意味着您的查询没有匹配任何内容。请注意您的用户/通行证如何存储在您的表中。

关于php - 这个 MySQL 查询有什么问题? (使用 PDO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20622977/

相关文章:

php - Laravel 数据库播种器类

php - 按用户名获取最后一条消息对话

php - 聚合 MYSQL 函数获取同一行中的值

php - 无法访问 protected 属性 Illuminate\Database\MySqlConnection::$pdo

php - 如何获取指定时间戳后的所有时间戳?

php - 为什么 move_upload_file 在给定代码中不总是返回 false?

php mysql html 分页不起作用

mysql - 在 MySQL 中进行单元测试的最佳工具

php - 带问号和冒号的 MySQL 语句

php - MySQL更新未知数量的字段