Php 致命错误:未捕获错误:调用bool上的成员函数RowCount()
ı我的登录页面有问题。我得到了这个错误: 致命错误:未捕获错误:在C:\xampp\htdocs\root\login.php中调用bool上的成员函数RowCount:43堆栈跟踪:在C:\xampp\htdocs\root\login.php的第43行抛出0{main} 行计数在所有数据库API中都存在。你的代码就是一个很好的例子 您的数据库结果已经存在于$query中,这意味着您不需要其他任何东西。只需去掉rowCount行并在以下条件中使用$query:Php 致命错误:未捕获错误:调用bool上的成员函数RowCount(),php,mysql,pdo,Php,Mysql,Pdo,ı我的登录页面有问题。我得到了这个错误: 致命错误:未捕获错误:在C:\xampp\htdocs\root\login.php中调用bool上的成员函数RowCount:43堆栈跟踪:在C:\xampp\htdocs\root\login.php的第43行抛出0{main} 行计数在所有数据库API中都存在。你的代码就是一个很好的例子 您的数据库结果已经存在于$query中,这意味着您不需要其他任何东西。只需去掉rowCount行并在以下条件中使用$query: $query = $db->
$query = $db->query("SELECT * FROM yonetim WHERE ...")->fetch(PDO::FETCH_ASSOC);
if ($query){
两个必须注意的事项:
在任何情况下都不应将数据变量直接放入查询中。改为使用占位符和准备好的查询。
使用MD5并不比存储为纯文本好多少。您必须改为使用密码验证。
下面是我为代码编写的一个规范示例:
请看-它实际上比您当前的代码简单得多 您的sql正在失败。$username周围不需要{}。查询失败。检查以了解原因。
$stmt = $pdo->prepare("SELECT * FROM yonetim WHERE username = ?");
$stmt->execute([$username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password']))
{
$_SESSION['LOGGED'] = $user['username'];
header('location:index.php');
exit;
} else {
echo "Kullanıcı adı veya şifre hatalı!";
}