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




.

...