【问题标题】:OOP Mysqli connection面向对象的 Mysqli 连接
【发布时间】:2017-06-04 20:39:48
【问题描述】:

$conn 属性在 function table() 中无法识别,尽管我运行第一个函数来连接数据库

include 'connectSQL.php';

$d= new ConnectSQL();
$d->connect();
$d->table();

> class ConnectSQL{

private $host='localhost';
private $Name='root';
private $Pass='';
private $dbName='test';

private $conn;
private $query;
private $results;

public function connect(){

    $conn=mysqli_connect($this->host,$this->Name,$this->Pass,$this->dbName);

    if(!$conn){
        echo 'connection fiald '.mysqli_connect_error();
    }


}


public function table(){


    $this->query="SELECT * FROM tableName";
      $this->results=mysqli_query($this->conn,$this->query);

}



}

【问题讨论】:

  • 这与mysql甚至php无关。这是一个封装和理解私有变量如何工作的问题。在大多数基于 C 的编程语言中,实例属性需要使用关键字 this 访问/更改

标签: php mysql oop mysqli


【解决方案1】:

你的table方法引用了$this->conn,但是connect方法没有设置$this->conn

在这行代码中:

$conn=mysqli_connect($this->host,$this->Name,$this->Pass,$this->dbName);

$conn 变量只存在于connect 方法的范围内。您需要使用 $this->conn 来将连接分配给私有属性。

【讨论】:

    猜你喜欢
    • 2017-11-27
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    相关资源
    最近更新 更多