【发布时间】:2019-06-22 08:20:18
【问题描述】:
我有一个 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 行 (public $bdd = parent::conn();) 上显示错误“不允许将表达式作为字段默认值”
我的代码有什么问题?
【问题讨论】:
-
正如它所说,你不能将表达式(parent::conn() 是一个表达式)作为默认属性值。请改用
__construct调用它。 -
....你试过用谷歌搜索那个错误信息吗?如果有的话,请在您的情况下提供链接,这很有帮助;)