星期一進行面試結束後,意味著我的考研日子也結束了,以及我的
2013
。在好好總結之後還不能停止學習,心想著要把演算法繼續學下去,還有
linux
。不過呢,始終都要記住尼采老師的這句當頭棒喝:「不加選擇的知識衝動,正如不分物件的性衝動,都是下流的標誌。」嗯嗯,我們繼續。
一.讀取資料庫亂碼問題
1天。糾結著從資料庫的編碼修改到網頁檔案的編碼修改,以及
mysql
的my.ini
檔案引數修改,都沒有解決問題。頁面中文顯示
"??"
就證明了問題不是出現在資料庫
(如果是,資料庫的表項就應該是亂碼
),也不是網頁頁面的編碼
(如果是,頁面會出現混亂的字元而不是
??),而問題是出在
php連線資料庫時沒有設定資料庫輸出的格式。最後解決問題參考的是這篇部落格
《解決php
寫入、讀取
mysql
資料庫時中文亂碼問題》
,謝謝jankerli。問題的關鍵就在mysqli類。這個類是擴充套件了php操作mysql的功能。所以網路上通行的在連線資料庫後的mysql_query(「set names utf8″)就起不了作用了。而是寫這句話。
1$result = new mysqli('localhost', 'username』, 'password', 'databasename');
2 $result->set_charset('utf8');
至於mysql與mysqli的比較,各有優缺點吧。請記住這句話,「如果你是使用mysql4.1.3或更新的服務端版本,強烈建議你使用mysqli 擴充套件替代它。」。
二.fetch
在做**時用到了一系列含有fetch的函式,現總結總結。
1.fetch_object()
1$result = $conn->query($query);2
3if($result->num_rows > 0)
解釋一下該**。首先,使用mysqli類的方法,執行查詢語句,返回乙個mysqli_result類的例項($result)。在判斷結果有效後,使用$result物件的方法fetch_object()返回記錄集中的當前一行記錄作為乙個物件。最後在根據需要進行傳值。
2.fetch_assoc()
1$result = @$conn->query($query);2
if (!$result) 5
6$result = @$result->fetch_assoc();
7return
$result;
同樣也是乙個mysqli_result類的例項($result),但取得的是乙個關聯陣列(associative array)。那麼什麼是關聯陣列呢?這是一種資料結構。與索引陣列相比,關聯陣列的每個i鍵(key)都關聯乙個值(value)。
通過關聯陣列,我們可以把
values
關聯到keys。具體就是在定義陣列時,使用逗號分隔的
鍵(key)=> 值(value)
對來進行對映。所以使用這裡的$result時,不再用$result->$id,而是$result[『id』]。這就是他倆的區別。
3.fetch_row()
1$num_cats = @$result->num_rows;
2 f($num_cats == 0)
5$row = $result->fetch_row();
6if(isset($row
))else
在檢查完查詢語句結果有效後,取得乙個列舉陣列($row)。至於與關聯陣列除了概念上的區別,我就知道foreach迴圈可以遍歷關聯陣列; 而for迴圈只能遍歷列舉陣列, 不能遍歷關聯陣列。其他的還有待學習。
最後提一句,$result->fetch_object()等價於mysqli_fetch_object()。前者是物件導向風格,後者是過程化風格。當然是推薦前者了。
PHP初學留神 一
1.轉義字元的使用 這個問題是在php下編寫sql語句的字串時遇到的,因為在where後面的條件判斷經常要用到雙引號 來表示字元。而諸如下面這樣的語句就會報錯。query select from where name zida 原因是雙引號的存在感太強了,最後兩個 會被誤認為少了連線符號的兩個字串。...
初學PHP之路
首先裝xampp,因為這個整合環境可以很好的搭建php執行環境和管理。安裝完成之後開啟 mysql和apache,也就是它的那個start鍵。隨後在瀏覽器上開啟 http localhost 可以開啟就說明你的安裝完成。記得你的xampp的安裝位置,找到xampp htdocs目錄,新建記事本,然後...
php初學彙總
1 php引擎將每乙個表單域放到乙個叫做 http post vars的陣列中,在陣列有兩個元素 username和password。在此程式中可以通過 http post vars username 和 http post vars password 訪問表單資訊。使用 http post var...