作者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
1F:→ kilfu0701:new之後 加这行 $db_data->db_connect(); 10/12 17:20
2F:→ maplenote:范例的recordset()是用if/if唷 你用的是if/else 10/12 17:25
3F:→ maplenote:然後你知道建构子吗?class是recordset其一function也是 10/12 17:29
4F:→ maplenote:如果你不知道建构子 那new完应该呼叫db_select($sql) 10/12 17:30
5F:→ maplenote:且不改if/else的话 一楼写的也要先呼叫 10/12 17:31
6F:→ ibbadmin:我试了1楼的code,的确加上这行以後connection就建起来了 10/12 17:33
7F:→ ibbadmin:现在正在按照楼上的思路去找我哪里出错 10/12 17:34
8F:→ CaptainH:那个范例用 if(!a){...}if(a){..} 才奇怪- -+ 10/12 18:09
9F:→ maplenote:连线可能会建立失败罗 这样写是合理的呀 10/12 18:13
10F:→ CaptainH:有道理, 是我没看清楚. 10/12 18:26
11F:→ tkdmaf:我觉得可以把连线的成功与否包在class处理。 10/12 22:34
12F:→ tkdmaf:而不是到了主程式才判断连线是否正常。 10/12 22:35