Discuz!X3.1數據庫的操作(二)
阿新 • • 發佈:2017-09-09
資源釋放 ech tro art www. 處理 類型 row limit
數據庫自定義query
方法名:BD::query()
參數解釋:
$sql:自定義SQL語句
$arg:需要綁定的數據
$unbuffered:是否使用無緩存查詢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php DB::query("SELECT * FROM %t WHERE id IN (%n)",array( ‘test_db‘, array(1,2,3) )); //資源集轉換結果集 whlie($res = DB::fetch($query)){ $result[] = $res; } debug($result) //自定義刪除id=11數據 DB::query("delete from %t where dId = %d",array ‘test_db‘,9 )); ?> |
資源集轉換結果集
方法名:DB::fetch()
參數解釋:
$resourceid : 數據庫查詢的query資源
$type : 數組類型
關聯索引
1 2 3 4 5 |
//資源集轉換結果集 whlie($res = DB::fetch($query)){ $result[] = $res; } debug($result) |
數字索引
1 2 3 4 5 6 7 8 9 10 |
<?php $data = DB::query("select * from %t where dId in(%n)",array ‘test_db‘,array(1,2,3,5) )); while($res = DB::fetch($data,MYSQL_NUM)){ $result[] = $res; } print_r($result); ?> |
數字索引和關聯索引全部取出
1 2 3 4 5 6 7 8 9 10 |
<?php $data = DB::query("select * from %t where dId in(%n)",array( ‘test_db‘,array )); while($res = DB::fetch($data,MYSQL_BOTH)){ $result[] = $res; } print_r($result); ?> |
單字段資源集轉換為結果集
參數解釋:
$resourceid : 數據庫查詢的query資源
$row : 指定行的第一個字段
1 2 3 4 5 6 7 8 9 |
<?php $query = DB::query("select * from %t where dId in(%n)",array( ‘test_db‘,array(1,2,3,5) )); $data = DB::result($query,0); echo $data; ?> |
資源集行數計算
方法名:DB::num_rows()
參數解釋:
$resourceid : 數據庫查詢的query資源
1 2 3 4 5 6 7 8 9 10 |
<?php //小數據量用num_rows,大數據用count(*) $query = DB::query("SELECT * FROM %t WHERE id > %d",array( ‘test_db‘, 7 )); $data = DB::num_rows($query); echo $data; ?> |
資源集資源釋放
方法名:DB::free_result()
參數解釋:
$query:執行SQ語句的query資源
1 2 3 4 5 6 7 8 9 |
<?php $query = DB::query("SELECT count(*) FROM %t WHERE id < %d ORDER BY id",array( ‘test_db‘, 7 )); $data = DB::result($query); DB::free_result($query); echo $data; ?> |
按字段排序
方法名:DB::order()
參數解釋:
$field:需要排序的字段
$order:排序的方式
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //倒序排列 $query = DB::query("select * from %t where dId < %d order by".DB::order(‘dId‘,‘DESC‘),array( ‘test_db‘, 8 )); while($res = DB::fetch($query)){ $result[] = $res; } debug($result); ?> |
取值區間設定
方法名:DB::limit()
參數解釋:
$start:開始的索引值
$limit:條目數
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //用DB::limit()取出2,3,4條數據,如取出前3條就寫DB::limit(3) $query = DB::query("SELECT count(*) FROM %t WHERE id < %d ORDER BY".DB::order(‘id‘,‘DESC‘).DB::limit(2,3,4),array( ‘test_db‘, 10 )); whlie($res = DB::fetch(%query)){ $result[] = $res; } debug($result) ?> |
字段拼接
方法名:BD::implode()
參數解釋:
$array:需要拼接的字段數組
$glue:字段拼接的字符串
1 2 3 |
<?php DB::implode(array(‘id‘ => 10, ‘name‘ => ‘ddd‘), ‘and‘); ?> |
將id修改成13,name值修改成ccc
1 2 3 4 5 6 7 8 9 |
<?php DB::query("update %t set".DB::implode(array( ‘dName‘ => ‘ccc‘, ‘dId‘ => ‘13‘ )).‘where dId=%d‘,array( ‘test_db‘, 8, )); ?> |
字段數據設定
方法名:DB::field()
參數解釋:
$field:需要處理的字段名稱
$val:字段對應的值
$glue:連接字段與值的類型
1 2 3 4 5 6 |
<?php //id=3改為id=99 DB::query("update %t set".DB::field(‘dId‘,‘99‘,‘=‘)."where dId=%d",array( ‘test_db‘,3) ); ?> |
Discuz!X3.1數據庫的操作(二)