作為一個php開發人員,竟然犯了一個很低級的錯誤,昨天幫朋友配置php+mysql,串連資料庫的時候犯了如下低級錯誤:
$dbhost='localhost';$dbusername='root';$dbpass='';$connect=mysql_connect($dbhost,$dbusername,$dbpass);print_r($connect);
我想測試資料庫能否串連成功,列印一下串連返回的結果,卻顯示Resource id #42(其實看到這個就表明資料庫連接已經成功了),以為哪裡配置錯了。
於是繼續犯低級錯誤,這樣繼續寫:
//接上面mysql_select_db('meican');$sql='select * from table';$result=mysql_query($sql);print_r($result);
我是想執行一條sql語句並列印結果集。
結果顯示空白一片。
現在用架構用多了,用資料庫連接類用多了,這種原始的串連資料庫的基本操作都生疏了,看來還是要夯實基礎啊。
分析了一下原因。原來PHP還存在一個資源類型。
資源 resource 是一種特殊變數,儲存了到外部資源的一個引用。資源是通過專門的函數來建立和使用的。資源類型變數儲存有為開啟檔案、資料庫連接、圖形畫布地區等的特殊控制代碼。
因此正確的寫法是:
$dbhost='localhost';$dbusername='root';$dbpass='';$connect=mysql_connect($dbhost,$dbusername,$dbpass);mysql_select_db('101ban');$sql='select * from tt_liuyan';mysql_query("set names utf8");$result=mysql_query($sql);while($row=mysql_fetch_array($result)){ echo $row['author'].'<br/>'.$row['content'];}
這樣就OK了,可以看見從資料庫表擷取的資料。
其實串連資料庫成功沒,一條語句就ok了,直接:
$link=mysql_connect($host,$username,$pwd);if($link){ echo 'ok';}else{ echo mysql_error();
(本文小談部落格原創,轉載請著名出處! 作者:小談部落格 網址:http://tanteng.sinaapp.com/2013/04/php-resource/)