我有一个connection.php类,这里是使用PDO对象到我的MySQL数据库的连接字符串。
然后,我在query.php页面中调用connection.php类,但是当我尝试从connection.php获取PDO对象时,出现错误“不允许将表达式作为字段默认值”。 (顺便说一句,我的IDE是phpstorm)
这是connection.php
class connection
{
private $host = "XXX";
private $db = "XXX";
private $login = "XXX";
private $password = "XXX";
public function conn()
{
try
{
$bddconn = new PDO('mysql:host='.$this->host.';dbname='.$this->db, $this->login, $this->password);
}
catch(PDOException $e)
{
echo "Connection failed " . $e->getMessage();
}
return $bddconn;
}
}
这是query.php
class query extends connection
{
public $bdd = parent::conn();
public function checkUser($login, $password)
{
$query = 'SELECT login, password FROM user WHERE login = ? AND password = ?;';
$req = $this->bdd->prepare($query);
return $req->execute(array($login, $password));
}
}
但是,在这一点上,IDE在query.php第2行(公共$ bdd = parent :: conn();)上显示错误“不允许将表达式作为字段默认值”
我的代码有什么问题?
答案 0 :(得分:2)
public $bdd = parent::conn();
您无法通过属性声明中的函数设置属性值
您必须在方法中初始化属性值,例如在构造函数中
class query extends connection
{
public $bdd;
public function __construct()
{
parent::__construct();
$this->bdd = parent::conn();
}
}