我正在尝试为我的数据库创建一个类:类结构如下
<?php
require_once("config.php"); // include(Username, passowrd, server and databaseName)
class MySQLDatabase{
private $connection;
function __construct(){
$this->openConnection();
}
public function openConnection(){
$this->$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PWD, DB_NAME);
if(!$connection){
die("Database connection failed: ".mysql_error);
}
}
}
$database = new MySQLDatabase();
$db =&$database;
?>
然后我的第一步是检查这个天气是否有效。所以我将index.php文件编码如下
<?php
require("../includes/database.php"); if(isset($database)){
echo "true";
}else{
echo "false";
}
?>
之后我运行程序,我得到如下错误。我无法理解原因。我谷歌它并没有明确的解决方案。是否有人可以帮助我理解为什么会发生这种情况以及如何解决这个问题?
(!)注意:未定义的变量:C:\ wamp \ www \ waytoits \ includes \ database.php
中的连接
on line 9
Call Stack
# Time Memory Function Location
1 0.0005 240792 {main}( ) ..\index.php:0
2 0.0008 249872 require( 'C:\wamp\www\waytoits\includes\database.php' ) ..\index.php:3
3 0.0013 250528 MySQLDatabase->__construct( ) ..\database.php:55
4 0.0013 250592 MySQLDatabase->openConnection( ) ..\database.php:15
( ! ) Fatal error: Cannot access empty property in C:\wamp\www\waytoits\includes\database.php on line 9
Call Stack
# Time Memory Function Location
1 0.0005 240792 {main}( ) ..\index.php:0
2 0.0008 249872 require( 'C:\wamp\www\waytoits\includes\database.php' ) ..\index.php:3
3 0.0013 250528 MySQLDatabase->__construct( ) ..\database.php:55
4 0.0013 250592 MySQLDatabase->openConnection( ) ..\database.php:15
答案 0 :(得分:2)
您使用$this->$connection
代替$this->connection
。移除$
中的connection
符号,然后重试。
答案 1 :(得分:1)
$this::$connection
(保留$
)将引用静态变量。因为您有一个类变量,所以应该通过$this->connection
您还需要在if
声明中使用相同的说明。