94hwan-PHP框架基本原理

Source:94hwan 与众不同  Author:网络部
2011-09-22 12:02

db 类的成员方法都是静态方法,因此使用时不需要初始化,主要操作如下:

一、执行一个查询
$rsid = db::query ($sql, $is_master = false)
参数:
1、$sql    要运行的SQL语句,可以是查询语句,也可以是update类语句
2、$is_master  读写分享参数,默认false为只读服务器,true为可写用于create、update、insert、delete等情况
返回值 $rsid 是查询游标

二、获取一条记录
db::fetch_one ($rsid, $result_type = MYSQL_ASSOC)
return array || false
fetch_one 实际是在执行query后才进行获取单条数据的方法,通常在 while 里可以用 while($row = db::fetch_one()) 如:

  1. $query = "Select * From `{$this->user_table}` limit 100 ";  
  2. $q = db::query($query);  
  3. while$row = db::fetch_one($q) ) 
  4.    $rows[] = $row
  5. print_r( $rows ); 

如果只是用指定的SQL获取单条记录,使用下面方式会更简便:
db::get_one ($sql, $result_type = MYSQL_ASSOC)
示例:

  1. $query = "Select * From `{$this->user_table}` where `uid`='{$this->uid}' "
  2. $q = db::query($query); 
  3. $fields = db::fetch_one($q); 

上面代码可以简化为:

  1. $query = "Select * From `{$this->user_table}` where `uid`='{$this->uid}' ";  
  2. $fields = db::get_one($query);  


三、获取上次查询爱影响的记录数
db::affected_rows()
return int

四、返回某次查询所得的总记录数
db::num_rows ( $rsid )
return int
$rsid 参数是执行query查询时设定的游标数字默认是当前程序执行的query次数

五、获得上次 insert 操作的自动递增id
db::insert_id ()
return int

六、返回上次查询的所的记录
db::fetch_all ($rsid)
return array
$rsid 参数是执行query查询时设定的游标默认是当前程序执行的query次数

七、使用新的连接(用于多数据库操作)
db::set_connect ($linkname, $config)
$linkname     连接名(随便定义,default是默认的连接)
$config         数据库配置信息(必须按$GLOBALS['config']['db']数组的格式定义)
return void
db::set_connect_default( $config='' )  恢复到默认的连接
$config 可选,没指定的情况下,默认使用$GLOBALS['config']['db']

应用场景:假设从B数据库查询数据插入A数据库,那么在进行查询前先通过 db::set_connect ($linkname, $config) 切换到B数据库,在循环记录集时,db::set_connect_default() 回到数据库A,然后把B的数据插入A的数据库中,再切换回db::set_connect ($linkname, $config),继续循环。

八、事务处理相关操作
db::autocommit ( $mode = 0)
设置是否自动提交事务
$mode 0 | 1 
return void

db::begin_tran( )
开始事务
return void

db::commit ( )
执行事务
return void

db::rollback( )
回滚事务
return void




.

...