2016-05-27 39 views
0

我有2個文件如何使用的MySQLi一類

MySQLi.php

$MySQLi = new mysqli($DB_ServerName, $DB_UserName, $DB_Password, $DB_Name); 
    if($MySQLi->connect_error) 
    { 
     ... 
    } 
    else 
    { 
     ... 
    } 

Articles.php

class Articles 
{ 
    public function AddArticle() 
    { 
     if ($MySQLi->query("INSERT INTO articles (Title, ArticleContent, Author) VALUES ('Title', 'Content', 'Author')") === TRUE) 
     { 
      ... 
     } 
     else 
     { 
      ... 
     } 
    } 
} 

如何使用$庫MySQLi在文章類?

+0

包括MySQLi.php到Articles.php –

+0

在網站上的每一頁都已經INCLUDE – Shai

+0

一兩件事你可以做的是創造和mysqli對象,將它作爲參數傳遞給Articles類。所以你會做'$ MySQLi = new mysqli(..); $ acticle = new Article($ MySQLi);'並且在您的文章的構造函數中有'$ this-> MySQLi = $ MySQLi;'作爲文章中的對象。然後你可以用'$ this-> MySQLi - > query(...)在該類的所有方法中使用它;'還有其他不同的方法來實現它,目標是包含'$ MySQLi'對象進入你方法的*範圍*。 – Qirel

回答

2

正如在評論中提到的,您應該將連接對象文件包含到另一個文件中。

另一個替代方案是: -

1)進行連接類的靜態處理的mysqli對象。

class DBConnection { 
    public static $con; 
} 
DBConnection::$con = new mysqli(YOUR_HOST, YOUR_USER, YOUR_PASS, YOUR_DB); 

和其他文件,如下靜態調用它: -

DBConnection::$con->query(...); // execute your query 

2)您也可以做到這一點通過創建類和對象。

class Connection{ 
    public $conn; 

    function __construct($host='YOUR_HOST',$user='YOUR_USER',$pass='YOUR_PASS',$db='YOUR_DB'){ 
    $this->conn = new mysqli($host, $user, $pass, $db); 
    } 
} 

然後創建Connection類的對象

$object = new Connection(); // pass connection params if you want to overwrite default connection params 

$object->conn->query(..); // execute your query