1. 程式人生 > >Discuz!X3.1數據庫的操作(一)

Discuz!X3.1數據庫的操作(一)

3.1 存在 lib .org 數據集 insert pc2 緩存 oms

數據庫指的是以一定方式儲存在一起、能為多個用戶共享、具有盡可能小的余度、與應用程序彼此獨立的數據集合。產品中的主題,帖子,用戶,關註等等。所有數據都存儲在數據庫中。

官方數據字典

http://faq.comsenz.com/library/database/x3/x3_index.htm

數據庫規範

http://dev.discuz.org/wiki/index.php?title=編碼規範

數據表插入操作

方法名:DB::insert()

1
2
3
4
5
<?php
DB::insert(‘test_db‘,array(
‘dname‘ => ‘ppc‘,
),true);
?>

參數解釋:

$table:插入數據的表

$data:插入的數據,字段對應值

$return_insert_id:是否返回插入數據的ID

$replace:是否使用replace into

1
2
3
4
5
6
7
<?php
//$replace 當存在數據執行修改,不存在執行寫入
DB::insert(‘test_db‘,array(
‘did‘ => ‘1‘,
‘dname‘ => ‘ppc‘,
),true,true);
?>

$slient:操作失敗是否不提示

數據表刪除操作

方法名:DB::delete()

1
2
3
<?php
DB::delete(‘test_db‘,‘dId=4‘,1,true)
?>

參數解釋:

$table:刪除數據的表

$condition:刪除條件

$limit:刪除滿足條件的目數

$unbuffered:是否使用無緩存查詢

數據表更新操作

方法名:DB::update()

1
2
3
4
5
<?php
DB::update(‘test_db‘,array(
‘dName‘ => ‘ppc2‘
),‘dId=5‘,true);
?>

插入的值如果是變量用array()

1 DB::update(‘borle_do‘,array(‘countMoney‘ => $countMoney),array(‘doId‘=> $doId),true);}

參數解釋:

$table:(更新數據的表)

$data:更新的數據,字段對應的

$condition:更新的條件

$unbuffrerd:是否使用無緩存查詢

$low_priority:是否采用無損更新表

綁定查詢的參數解釋

表達式 數據處理
%t DB::table()
%d Intval()
%s addslashes
%n IN(1,2,3)
%f Sprintf(‘%f,%var’)
%i 不做任何處理

數據表查詢操作(單條)

方法名:DB::fetch_first()

1
2
3
4
5
6
7
<?php
$dId = 5;//可以使用$dId = ‘2admin‘,輸出2,由於Intval()將指轉換為2
$data = DB::fetch_first(‘select * from %t where dId=%d‘,
array(‘test_db‘,$dId)
);
print_r($data);
?>

參數解釋:

$sql:查詢數據的sql語句

$arg:綁定查詢的參數

$silent:查詢失敗時是否不提示

數據表查詢操作(多條)

方法名:DB::fetch_all()

1
2
3
4
5
6
7
8
<?php
$data = DB::fetch_all("select * from %t where dId>=%d and dId<=%d",
array(‘test_db‘,1,9),
‘dId‘
);

print_r($data);
?>

通過%n進行數據查詢

1
2
3
4
5
6
7
<?php
//%n表示array(1,2,3,4,5,6)
$data = DB::fetch_all("select * from %t where dId in (%n)",
array(‘test_db‘,array(1,2,3,4,5,6))
);
print_r($data);
?>

參數解釋:

$sql:查詢數據的SQL語句

$arg:綁定查詢的參數

$keyfield:一維索引的字段名稱

$silent:查詢失敗的是否不提示

數據表查詢操作(單字段)

方法名:DB::result_first()

1
2
3
4
5
6
7
<?php
//查詢dName字段id=1的數據
$data = DB::result_first("select dName from %t where dId=%d",
array(‘test_db‘,1)
);
echo $data;
?>

比較常用語統計查詢

1
2
3
4
5
6
<?php
$data = DB::result_first("select count(*) from %t",
array(‘test_db‘)
);
echo $data;
?>

取最大值id

1
2
3
4
5
6
<?php
$data = DB::result_first("select max(dId) from %t",
array(‘test_db‘)
);
echo $data;
?>

參數解釋:

$sql:查詢數據的sql語句

$arg:綁定查詢的參數

$silent:查詢失敗時是否不提示

Discuz!X3.1數據庫的操作(一)