2017-08-14 73 views
0
  1. db.php中試圖讓非對象的屬性,同時試圖從數據庫

    <?php 
    class DB{ 
    
    protected $db_name = ''; 
    protected $db_user = ''; 
    protected $db_pass = ''; 
    protected $db_host = ''; 
    
    public function connect() { 
    
        $connect_db = new mysqli($this->db_host, $this->db_user, $this->db_pass, $this->db_name); 
    
        if (mysqli_connect_errno()) { 
    
         printf("Connection failed: %s\n", mysqli_connect_error()); 
         exit(); 
        } 
    
        return $connect_db; 
    
    } 
    } 
    

獲取數據在db.php中我嘗試創建數據庫連接。

  • test.php的

    <?php 
    
    require('DB.php'); 
    
    $db = new DB('localhost', 'root', '', 'test'); 
    $connection = $db->connect(); 
    
    
    $sql ="SELECT * FROM users"; 
    $result = $connection->query($sql); 
    
    if ($result->num_rows > 0) { 
        while($row = mysqli_fetch_array($result)) {    
    
         array_push($responseData, 
         array('uid' => $row[0], 
          'u_name' => $row[1], 
          'u_pass' => $row[2], 
          'u_fname' => $row[3], 
          'u_email' => $row[4], 
          'u_status' => $row[5], 
          'u_notes'=>$row[6])); 
        } 
    
         echo json_encode(array("result"=>$responseData)); 
        } 
    
    else { 
        echo '<div class="callout callout-danger">No data found...</div>'; 
    } 
    
  • 在test.php的,我想從用戶表中的數據,但它說「試圖獲得的財產第12行的test.php中的非對象。「

    請幫忙。 謝謝。

    +0

    我想你''database'空table' –

    +0

    你不必在你的DB-文件,但在你的'test.php'文件正在創建使用參數的新實例構造函數。當你使用非對象變量作爲對象 – WasteD

    +0

    會出現此通知。嗯...必須是你的'mysqli_fetch_array'東西。也許試圖重寫那一點。 – Zeth

    回答

    0

    你必須在db.php文件來創建一個constructor。否則你的變量是空的。

    db.php

    function __construct($hostname, $username, $pw, $db) { 
        $this->db_host = $hostname; 
        $this->db_user = $username; 
        $this->db_pass = $pw; 
        $this->db_name = $db; 
    } 
    

    添加這樣你要設置的變量。