显示的错误是
"致命错误:未捕获错误:在D:\ Users \ kukor \ Documents \ XAMPP \ htdocs \ timetable \ class.ManageUsers.php中调用字符串上的成员函数query():22堆栈跟踪:# 0 D:\ Users \ kukor \ Documents \ XAMPP \ htdocs \ timetable \ login.php(19):ManageUsers-> LoginUsers(' kayzmark',' ultimate')#1 {在第22行和第34行的D:\ Users \ kukor \ Documents \ XAMPP \ htdocs \ timetable \ class.ManageUsers.php中抛出;
<?php
class ManageUsers{
public $link;
function __construct(){
$db_connection = new dbConnection();
$this->link = $db_connection->connect();
return $this->link;
}
function registerUsers($password, $ip_address, $date, $time, $username, $email, $uname){
$query = $this->link->prepare("INSERT INTO users (password,ip_address,date,time,username, email, uname) VALUES(?,?,?,?,?,?,?)");
$values = array ($password, $ip_address, $date, $time, $username, $email, $uname);
$query->execute($values);
$count = $query->rowCount();
return $count;
}
function LoginUsers($username, $password){
$query = $this->link->query("SELECT * FROM users WHERE username='$username' AND password='$password'");
$rowCount = $query->rowCount();
return $rowCount;
}
function GetUserInfo($username){
$query = $this->link->query("SELECT * FROM users WHERE username = '$username'");
$rowCount = $query->rowCount();
if($rowCount ==1)
{
$result = $query->fetchAll();
return $result;
}
else
{
return $rowCount;
}
}
}
?>
答案 0 :(得分:0)
您可能会在字符串而不是对象上调用->query()
。你能否验证调用query()on的变量是否包含正确的对象而你没有错误地覆盖它?
答案 1 :(得分:0)
@Bolivir是对的:你得到的错误是因为$this-link
是一个字符串,而不是一个对象。
可能是$this->link = $db_connection->connect();
也可以返回字符串而不是连接(例如,当您输入错误的凭据或数据库关闭时)?
或者$this->link
不应该引用$db_connection
?只是在这里尝试一下,因为我不知道你正在使用什么DB包装器。
dbConnection::connect()
- 方法是什么样的?