我将我的登录页面转换为使用 PDO
但现在它不起作用。我已经遍历了各种代码示例,但我无法弄清楚我哪里出错了。这对我来说很完美。错误报告也完全启用,但我没有收到任何错误。我刚刚收到页面“配置不正确”的浏览器错误。仅供引用,这是一个 SQL
db
//代码
<?php
require ("../Android/connect_db.php");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$query_unpw = $db->prepare("
SELECT member_mast.company_name
FROM member_mast
WHERE username = ?
AND password = ?
");
//$username = $_POST['username'];
//$password = $_POST['password'];
$username = 'abc';
$password = 'abc';
$name = "name";
$query_unpw->bindValue(1, $username, PDO::PARAM_STR);
$query_unpw->bindValue(2, $password, PDO::PARAM_STR);
$query_unpw->execute();
$count = $query_unpw->rowCount();
if ($count > 0) {
while ($row = $query_unpw->$fetch(PDO::FETCH_ASSOC)) {
$name = $row['company_name'];
}
echo $name;
} else {
echo "Username/Password is invalid";
}
} catch(PDOException $e) {
die($e->getMessage());
}
?>
现在我在注释掉不同的代码段后唯一能弄清楚的是,如果我像这样注释掉用户名和密码
//$username = 'abc';
//$password = 'abc';
然后页面加载,只给我 else
回显“用户名/密码无效”。但是我不认为我使用它们是错误的,我知道它们是正确的。所以显而易见的问题是我是瞎子吗,这里出了什么问题?额外的问题是,因为我将对这些变量使用 _POST
,所以我是否正确地清理了用户输入? PDO
仍然很新,我想确保我做的是正确的。谢谢您的帮助!
最佳答案
问题在这里:
$query_unpw->$fetch
必须是:
$query_unpw->fetch()
这是一个方法,所以跳过 $
符号。
我建议你在开发时使用 ini_set('display_errors', "On")。
关于php - 使用 PDO 的正确信息登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282016/