作者ibbadmin (愛BB)
看板PHP
標題[請益] 請教釣魚吃的方法
時間Wed Oct 12 17:04:46 2011
小弟新手,剛K完一本入門書,現在正在練習各種範例打底。
打底的過程中,我越來越覺得解決問題的經驗與能力很重要,
透過google大神的幫忙,對於有error code、有亂碼、有各種異常出現的bug,
大多都能找到原因並解決,
但是有些bug,就是看不出異常在哪,也不知從何下手起。
打個比方,底下是網路上的教學範例:
<?php
class recordset{
var $show;
//主機
var $host="主機";
//帳號
var $dbid="帳號";
//密碼
var $passwd="密碼";
//資料庫
var $database="資料庫";
var $conn;
function connect(){
$this->conn=mysql_connect($this->host,$this->dbid,$this->passwd);
mysql_select_db($this->database);
}
function recordset($sql){
if(!is_resource($this->conn))
$this->connect();
if(is_resource($this->conn)) {
$q=mysql_query($sql,$this->conn);
$this->show=mysql_fetch_array($q);
}
}
}
$sql="select * from login_list where sn='02' ";
$get_db = new recordset($sql);
$A = $get_db->show["id"];
echo $A ;
?>
小弟按照自己主機上的資料庫,寫了一支類似的程式:
<?php
class sql_conn{
var $show;
var $host='localhost';
var $db_un='********';
var $db_pw='********';
var $db_name='admin001_php';
var $conn;
function db_connect(){
$this->conn=mysql_connect($this->host,$this->db_un,$this->db_pw);
mysql_select_db($this->db_name);
mysql_query("SET NAMES 'utf8'");
}
function db_select($sql){
if(!is_resource($this->conn)){
$this->db_connect();
}
else {
$sql_q=mysql_query($sql,$this->conn);
$this->show=mysql_fetch_array($sql_q);
}
}
}
$sql="select * from customers;";
$db_data=new sql_conn($sql);
$A = $db_data->show[cid];
if(isset($db_data->conn)){
echo "有connection";
}
else{
echo "無connection";
}
echo "資料庫執行結果:<br />";
echo $sql_q;
echo $A;
?>
跑出來結果是無connection,
所以我已經知道連線沒有建起來。(或者我觀念錯誤)
但接下來我就不知道怎麼處理了,
想請教板上的前輩指導找問題的方法,
讓我以後遇到類似問題能夠按照正確的思路解決,
感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.26.142
→ kilfu0701:new之後 加這行 $db_data->db_connect(); 10/12 17:20
→ maplenote:範例的recordset()是用if/if唷 你用的是if/else 10/12 17:25
→ maplenote:然後你知道建構子嗎?class是recordset其一function也是 10/12 17:29
→ maplenote:如果你不知道建構子 那new完應該呼叫db_select($sql) 10/12 17:30
→ maplenote:且不改if/else的話 一樓寫的也要先呼叫 10/12 17:31
→ ibbadmin:我試了1樓的code,的確加上這行以後connection就建起來了 10/12 17:33
→ ibbadmin:現在正在按照樓上的思路去找我哪裡出錯 10/12 17:34
→ CaptainH:那個範例用 if(!a){...}if(a){..} 才奇怪- -+ 10/12 18:09
→ maplenote:連線可能會建立失敗囉 這樣寫是合理的呀 10/12 18:13
→ CaptainH:有道理, 是我沒看清楚. 10/12 18:26
→ tkdmaf:我覺得可以把連線的成功與否包在class處理。 10/12 22:34
→ tkdmaf:而不是到了主程式才判斷連線是否正常。 10/12 22:35