我做了一个简单的社交网络系统,具有注册和登录功能,但是当用户注册并尝试登录时,他给出以下消息:
fatal error :在 home/login.php 第 7 行的非对象上调用成员函数 rowcount()
我正在使用 PDO 连接。
我的login.php代码有问题吗?:
<?php
include('dbcon.php');
$username = $_POST['username'];
$password = $_POST['password'];
$query = $conn->query("select * from database where username = '$username' and password = '$password'");
$count = $query->rowcount();
$row = $query->fetch();
if ($count > 0){
session_start();
$_SESSION['id'] = $row['member_id'];
header('location:home.php');
}else{
header('location:index.php');
}
?>
最佳答案
我假设您使用的是PDO
,并且rowcount
方法不存在,但另一方面有一个rowCount
方法。请记住这些是区分大小写的。
<?php
include('dbcon.php');
$username = $_POST['username'];
$password = $_POST['password'];
$stm = $conn->prepare("select * from database where username = ? and password = ?");
$stm->execute(array($username, $password));
$count = $stm->rowCount();
$row = $stm->fetch(PDO::FETCH_ASSOC);
if ($count > 0) {
session_start();
$_SESSION['id'] = $row['member_id'];
header('location:home.php');
} else {
header('location:index.php');
}
?>
这应该可以解决问题。
PDOStatement::rowCount
我还编辑了您的查询,以便它使用带有占位符的准备好的语句,这将保护您免受 SQL Injection 的影响。 .
关于php - 我的社交网络中的用户无法注册和登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866377/