關於phpcms中mysql和mysqli的區別

來源:互聯網
上載者:User

標籤:

用phpcms開發一個考試成績查詢的小模組,用電腦上以前下載的phpcms版本為架構開發,一切順利。想著下載一個最新版本,以後也免了升級的麻煩。於是,下載好,然後把模組目錄、model資料庫連接檔案、模板以及設定檔都如數複製。

可是,問題出現了!

……調試折騰了幾個小時,在新舊版本間切換數次,終於發現是phpcms版本導致的問題,我勒個去!

用exit()定位,繼續研究,發現問題出在以下幾行代碼:

$result = $this->db->query($sql);

while($row=mysql_fetch_row($result)) {

  echo $row[0].‘<br />‘;    

}

 

這幾行代碼無動於衷,毫無效果……於是,又折騰……,用gettype($result)檢測出$result為對象,啥對象?不知道,淩亂……

想到了var_dump()函數。

輸入var_dump($result)後,出現了object(mysqli_result)。確實是個串連資來源物件,但是不是mysql串連,而是mysqli串連。

用文本搜尋工具搜尋,探索資料庫設定檔database.php裡面是這樣的“‘type‘ => ‘mysqli‘,”;

這就是癥結所在,將mysqli改為mysql,一切正常。但肯定不能改回去呀,於是百度mysqli。

原來,mysql(過程方式)和mysqli(對象方式)都使用query查詢,但讀取行資料的函數不一樣了。

mysql(過程方式)用$row = mysql_fetch_row( $result ) 這樣的方式(原來都這樣用)

而mysqli(對象方式)用$row = $result -> fetch_row();這樣的方式。

改過來,一切正常!

 

關於phpcms中mysql和mysqli的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.