2016-04-15 27 views
3

嗨,這是一種這個問題的升級版本: query mysql database from inside a class 與上一個問題的區別是我需要一個動態查詢不是靜態的或l $ query =「 SELECT col_1 FROM db.table「;所以爲了有一個動態查詢我需要使用屬性(或變量),所以我可以調用不同的表,從同一個類,或類似這樣的「SELECT'$ data'FROM'$ table'」;查詢mysql數據庫從一個類裏面使用屬性

到目前爲止,我的類看起來像這樣,類似於前面的問題:

$mysqli = new mysqli("localhost", "root", "", "intranetpugle"); 

class crudmum { 

    private $table; 
    private $data; 
    private $mysqli; 

    function __construct($mysqli) { 
    $this->mysqli = $mysqli; 
    } 


function runQuery($data2, $table2) 
    { 
    $this->table = $table2; $this->data = $data2; 
    $query = "SELECT '$this->data' FROM '$this->table' "; 

    $stmt = $this->mysqli->prepare($query); 
    $stmt->execute(); 
    $stmt->bind_result($r); 

    while($stmt->fetch()) 
    {  
      echo "<option>" . $r . "</option>"; 
    } 
    } 
}; 

這是我如何運行它:

$showme = new crudmum($mysqli); 
$showme->runQuery("priority", "trackboards"); 

注:當我不使用變量或屬性在查詢或類似這樣的SELECTth優先級從軌道板,查詢確實工作,只有當我輸入的屬性或變量(如給出的例子),它不起作用。

我得到這個錯誤: 致命錯誤:調用一個成員函數準備()一個非對象在C:\ XAMPP \ htdocs中\ devserv \ 1 + d \自舉\的functions.php上線

任何人都看到我在做什麼錯了,當然有與數據庫查詢錯誤如何將一類,對不起新用PHP OOP中查詢數據庫權以動態的方式任何想法!

+0

你能迴應你的查詢「$ query =」SELECT'$ this-> data'FROM'$ this-> table'「;」並退出代碼,以便我們可以檢查是什麼問題。 – Aparna

+0

將您的select替換爲文字查詢'SELECT priority FROM trackboards'並查看它是否有效。如果確實如此,那麼你的物業有問題。 – andre3wap

+0

嗨,只有當我輸入屬性或變量,它不起作用 – bonini81

回答

1

發現這是增加對變量的引用',像圖所示的錯誤:

$query = "SELECT '$this->data' FROM '$this->table' "; 

正確的方法是採取了那些對變量或類似這樣的「行情」:

$query = "SELECT $this->data FROM $this->table "; 

隨着該修補程序,查詢運行得很好,想我缺乏對細節的關注,感謝名單大家的幫助。