2017-08-10 99 views
0

经过程序php我从上周开始研究OOP的基本原理,并尝试连接数据库。但它让我意外的错误:PHP与mysqli的连接错误

unexpected '$conn' (T_VARIABLE), expecting function (T_FUNCTION)

PHP代码:

class Database 
{ 
    public $conn; 

    private $host = "localhost"; 
    private $user = "root"; 
    private $pass = ""; 
    private $db = "inventory"; 

    // Create connection 
    $conn = new mysqli($host, $user, $pass, $db); 

    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    echo "Connected successfully"; 
} 

回答

0

你有你的连接代码存储到一个功能。不要忘记从顶部删除public $conn;

public function createConnection() 
    { 
     // Create connection 
     $conn = new mysqli($this->host, $this->user, $this->pass, $this->db); 

     // Check connection 
     if ($conn->connect_error) { 
      die("Connection failed: " . $conn->connect_error); 
     } 

     //echo "Connected successfully"; 
     return $conn; 
    } 

然后你可以创建一个类的对象。

$db = new Database(); // Your main object 
    $conn = $db->createConnection(); // The connection object 

请注意,我一直在使用$ this->变量来访问您的类中的私有变量。

现在您可以使用连接对象。 例如$conn->query("SELECT * FROM MyTable");

+0

Howells,它解决了我的问题,我可以使用$ this-> conn作为mysqli实例作为全局实例变量,并使用createConnection()方法使用private/protected可见性。 –

+0

我编辑了我的帖子,现在如果创建连接,您可以使用查询来获取连接对象。 –

1

试试这个:

<?php 

class Database { 
    public $conn; 

    private $host = "localhost"; 
    private $user = "root"; 
    private $pass = ""; 
    private $db = "inventory"; 

    public function __construct() 
    { 
     // Create connection 
     $this->conn = new mysqli($this->host, $this->user, $this->pass, $this->db); 

     // Check connection 
     if ($this->conn->connect_error) { 
      die("Connection failed: " . $this->conn->connect_error); 
     } 
     echo "Connected successfully"; 
    } 

    public function getCon() { 
     return $this->conn; 
    } 

} 

?> 

你需要一个构造函数。 对于使用你的类只是:

$oDatabase = new Database(); 

你需要吸气剂在美国康涅狄格州$ ACCES;

0

您的班级没有任何功能。例如,你需要一个connect()来连接数据库。

class Database { 
     // public $conn; 

     private $host = "localhost"; 
     private $user = "root"; 
     private $pass = ""; 
     private $db = "inventory"; 

     // Create connection 
     function connect() { 
     $conn = new mysqli($host, $user, $pass,$db); 
      // Check connection 
      if ($conn->connect_error) { 
      die("Connection failed: " . $conn->connect_error); 
      } 
      echo "Connected successfully"; 
     } 
    }