我正在进行登录功能,但遇到了一个我无法弄清楚的错误.
这是我的Model Login类:
class Login {
private $username;
private $password;
private $cxn; //database object
function __construct($username,$password)
{
//set data
$this->setData($username, $password);
//connect DB
$this->connectToDB();
// get Data
}
function setData($username, $password)
{
$this->username = $username;
$this->password = $password;
}
private function connectToDB()
{
include 'Database.php';
$connect = '../include/connect.php';
$this->cxn = new database($connect);
}
function getData()
{
$query = "SELECT * FROM anvandare WHERE anvandarnamn = '$this->username' AND losenord ='$this->'password'";
$sql = mysql_query($query);
if(mysql_num_rows($sql)>0)
{
return true;
}
else
{
throw new Exception("Användarnamnet eller Lösenordet är fel. Försök igen.");
}
}
function close()
{
$this->cxn->close(); //Here is the error it says "Method 'close' not found in class
}
}
最后一个函数给出错误“方法’关闭”在类中找不到”,“在主题类中找不到引用方法”.
这是我的数据库类:
class Database {
private $host;
private $user;
private $password;
private $database;
function __construct($filename)
{
if(is_file($filename)) include $filename;
else throw new exception("Error!");
$this->host=$host;
$this->user=$user;
$this->password=$password;
$this->database=$database;
$this->connect();
}
private function connect()
{
//Connect to the server
if(!mysql_connect($this->host, $this->user, $this->password))
throw new exception("Error, not connected to the server.");
//Select the database
if(!mysql_select_db($this->database))
throw new exception("Error, no database selected");
}
function close()
{
mysql_close();
}
}
这些途径是正确的,所以不是这样.可能是什么错误?
解决方法:
PhpStorm无法确定$this-> cxn字段的类型.您可以通过简单的PHPDoc注释提供typehint来提供帮助:
/** @var Database */
private $cxn; //database object