2014-01-29 86 views
-2

我想將我用mysql做的這一小段代碼轉換成mysqli,任何能夠提供幫助的人都會很感激。我嘗試了幾次來做到這一點,但是我失敗了,但是我需要用mysqli來做,因爲將來mysql會被折舊。 。 。先謝謝你。將mysql配置轉換爲mysqli

<?php 

CLASS DB_Class { 

    //database selection classes 

    function DB_Class($dbname, $username, $password) { 
    $this->db = mysql_connect ('host', 'guest', 'dbacess') 
    or die ("Unable to connect to Database Server"); 
    mysql_select_db ($dbname, $this->db) or die ("Could not select database"); 
    } 

    function query($sql) { 
    $result = mysql_query ($sql, $this->db) or die ("Invalid query: " . mysql_error()); 
    return $result; 
    } 

    function fetch($sql) { 
    $data = array(); 
    $result = $this->query($sql); 

    while($row = MYSQL_FETCH_ASSOC($result)) { 
      $data[] = $row; 
    } 
      return $data; 
    } 

    function getone($sql) { 
    $result = $this->query($sql); 

    if(MYSQL_NUM_ROWS($result) == 0) 
     $value = false; 
    else 
     $value = MYSQL_RESULT($result, 0); 
     return $value; 
    } 
} 

?> 

回答

0

的查詢方法的衝突很可能趕上你,我已經改名這個_query,你可能會注意到。我已經測試了每種方法以確保它們也能正常工作。如果您有任何問題,請告訴我。

class DB_Class { 

    //database selection classes 
    private $db; 

    function DB_Class($dbname, $host, $username, $password) { 
     $this->db = new mysqli($host, $username, $password, $dbname); 
    } 

    function _query($sql) { 
     $result = $this->db->query($sql) or die ("Invalid query: " . mysqli_error()); 
     return $result; 
    } 

    function fetch($sql) { 
     $data = array(); 
     $result = $this->_query($sql); 

     while($row = mysqli_fetch_array($result)) { 
      $data[] = $row; 
     } 
     return $data; 
    } 

    function getone($sql) { 
     $result = $this->_query($sql); 

     if(mysqli_num_rows($result) == 0) 
      $value = false; 
     else 
      $value = $result->fetch_row(); 

     return $value; 
    } 
}  
+0

謝謝。 。 。我會嘗試,並讓你知道它是否有效。 – Agreetumi

+0

我試過了,但它不工作....我得到錯誤getone()函數。 – Agreetumi

+0

什麼是錯誤?並取得方法的工作?你可以發佈你用來調用DB_Class的代碼嗎? – John