2016-10-01 37 views
0

我想學習面向對象編程。 我現在的問題是如何在類中的mysqli_query()下添加鏈接。OPP mysqli_query()期望兩個參數...

在程序的風格我剛剛創建的連接細節$變量,然後使用它的mysqli_query($變量$ SQL)等

在我的課堂我有函數內部連接(),它會連接到數據庫並返回true,但唧可以在我的mysqli_query()中使用它嗎?請參閱此處的代碼:

<?php 

class DB { 
    protected $db_name = 'OOP_forum'; 
    protected $db_user = 'Marcel'; 
    protected $db_pass = *****; 
    protected $db_host = 'localhost'; 


    public function connect() { 

     $connection = mysqli_connect($this->db_host, $this->db_user, $this->db_pass); 
     mysqli_select_db($connection, $this->db_name); 

     return true; 
    } 

    public function processRowSet($rowSet, $singleRow = false) { 

     $resultArray = array(); 
     while($row = mysqli_fetch_assoc($rowSet)) { 
      arraypush($resultArray, $row); 
     } 

      if($singleRow==true) { 
       return $resultArray[0]; 
      }else { 
       return $resultArray; } 
     } 


     public function select ($table, $where, $column = '*') { 
      $sql = "SELECT $column FROM $table WHERE $where"; 
      $result = mysqli_query($sql); 

       if(mysqli_num_row($result) == 1){ 
       return $this->processRowSet($result, true); 
       } else 
        { return $this->processsRowSet($result); 
      } 
      } 



     public function update ($data, $table, $where) { 

         foreach ($data as $column->$value) { 

          $sql = "UPDATE $table SET $column = $value WHERE $where"; 
          mysqli_query($sql) or die(mysqli_error()); 
          } 
          return true; 
         } 

     public function delete ($table, $column, $where) { 
      $sql = "DELETE FROM $table WHERE $column = $where"; 

       if (query($sql)=== TRUE) { 
       echo "Record Deleted sucessfully"; 
      }else { 
       echo "Error deleting record: " . $connection->error; 
      } 

     }    

     public function insert($data, $table) { 

      $columns = ""; 
      $values = ""; 

      foreach ($data as $column->$value) { 

       $columns .= ($columns == "") ? "": ", " ; 
       $columns .= $column; 
       $values .= ($values == "") ? "" : ", "; 
       $values .= $value; 
        } 


      $sql = "insert into $table ($columns) values ($values)"; 
      mysqli_query($sql) or die(mysqli_error()); 

      return mysqli_insert_id(); 
       }  

      } 


?> 
+0

爲什麼你使用過程式mysqli,如果你正在學習OOP語法? –

+0

你必須傳遞你的連接對象作爲第一個參數: - '$ result = mysqli_query($ sql);' –

+0

感謝您的評論。這就是我想要做的,將連接作爲第一個參數傳遞給mysqli_query(something,$ sql),但不知道如何從我的connect函數返回true來實現。將學習更多:) – Marcel

回答

0

在嘗試學習OOP編程之前,您必須學習基本的OOP語法。

爲了做到這一點,忘了一段時間關於創建自己的班級和學習如何使用已經做好的班級。所以,首先要學習如何使用mysqli。這已經是一個班。

更好的是,請學習PDO,因爲與mysqli不同,它已經可以使用數據庫訪問類了,例如,您不需要像processRowSet這樣的函數。

相關問題