PHP登录和注册错误

时间:2016-08-19 05:28:09

标签: php

显示的错误是

  

"致命错误:未捕获错误:在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;
        }
    }
}
?>

2 个答案:

答案 0 :(得分:0)

您可能会在字符串而不是对象上调用->query()。你能否验证调用query()on的变量是否包含正确的对象而你没有错误地覆盖它?

答案 1 :(得分:0)

@Bolivir是对的:你得到的错误是因为$this-link是一个字符串,而不是一个对象。

可能是$this->link = $db_connection->connect();也可以返回字符串而不是连接(例如,当您输入错误的凭据或数据库关闭时)?

或者$this->link不应该引用$db_connection?只是在这里尝试一下,因为我不知道你正在使用什么DB包装器。

dbConnection::connect() - 方法是什么样的?