这是我第一次尝试使用命名占位符,所以我确定我在某处有语法错误......我只是没有看到它。我按照我找到的指示 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/