之前突然有个想法 模拟ADODB中的 fields[]来显示字段

本文介绍了一个自定义PHP类,该类模拟ADODB的fields[]功能,实现从数据库查询结果中直接访问字段。作者通过示例代码展示了如何使用此类进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 之前突然有个想法 模拟ADODB中的 fields[]来显示字段.

列:$db->fields['cc'];

然后自己尝试写个类 可以实现了。。但是在遍历记录的时候 新变量不能变为初始化类的变量 我就郁闷了

只好先用这。。跑去论坛问了一下。没人回。。哭

不说废话了。。上代码。。哪位高人看的话恳请指教指教

<?php
/**
 * file:class.db.php
 * @name ViDb
 * @author stefenjun
 * @version 1.2
 * @deprecated Db Class
 * 
*/
class Vidb {
    
private $dbhost;
    
private $dbuser;
    
private $dbpass;
    
private $dbname;
    
public $debug=0;
    
public $fields;
    
    
public function __construct(){
        
$this->dbhost=$dbhost;
        
$this->dbuser=$dbuser;
        
$this->dbpass=$dbpass;
        
$this->dbname=$dbname;
    }
    
protected function Msg($msg){
        
echo $msg;
    }
    
protected function Error(){
        
return mysql_error();
    }
    
public function Dbconnect($dbhost,$dbuser,$dbpass,$dbname){
        
if (!@mysql_pconnect($dbhost,$dbuser,$dbpass,$dbname)){
            
$this->Msg("无法连接数据库主机!</p>".$this->Error());exit;
        }
        
if (!@mysql_select_db($dbname)){
            
$this->Msg("无法选择数据库!</p>".$this->Error());exit;
        }
    }
    
public function Query($sqlstr){
        
if ($this->debug==1){
            
echo "$sqlstr<hr>";
        }

        
return mysql_query($sqlstr);
    }
    
public function Fetch_Assoc($query){
        
return $this->fields=mysql_fetch_assoc($query);
    }
    
public function Fetch_Array($query){
        
return $this->fields=mysql_fetch_array($query);
    }
    
public function Num_rows($query){
        
return mysql_num_rows($query);
    }
    
public function Fetch_Row($query){
        
return mysql_fetch_row($query);
    }
    
public function Fetch_Object($query){
        
return mysql_fetch_object($query);
    }
    
public function Dataselect($table,$param=''){
        
$sql="select * from $table where 1";
        
if (!empty($param)) $sql.=" and $param";
        
$query=$this->Query($sql);
        
$this->fields=$this->Fetch_Assoc($query);
        
return $this->fields;
    }
    
public function DataCount($table,$param=''){
        
$sql="select count(*) as num from $table where 1";
        
if (!empty($param)) $sql.=" and $param";
        
$query=$this->Query($sql);
        
$this->fields=$this->Fetch_Assoc($query);
        
return $this->fields['num'];
    }
}
?>

 

成员中 public $debug;是调试信息 为1时 执行SQL语句时会返回SQL语句

要想达到ADODB的效果还。。。汗*_!

 

<?
$sql="select field from table";
$query=$db->Query($sql);
while($db->Fetch_Assoc($query)){
    
echo $db->fields['cc']."</p>";
}
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值