我有一个 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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是 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));
}
}
Run Code Online (Sandbox Code Playgroud)
但是,此时 IDE 在 query.php 第 2 行(public $bdd = parent::conn();)上显示错误“表达式不允许作为字段默认值”
我的代码有什么问题?
public $bdd = parent::conn();
Run Code Online (Sandbox Code Playgroud)
您不能从属性声明中的函数设置属性值
您必须在方法中初始化属性值,例如在构造函数中
class query extends connection
{
public $bdd;
public function __construct()
{
parent::__construct();
$this->bdd = parent::conn();
}
}
Run Code Online (Sandbox Code Playgroud)