1、為了簡化數據庫操作,calfbb默認開啟了函數式數據庫操作,你可以在php腳本里任意一個位置使用封裝的函數操作數據庫
2、calfbb框架數據庫底層采用pdo封裝,函數式操作數據庫指在簡化開發人員開發系統難度,提高效率。
* 增加表前綴
* [table_prefix](http://www.hmoore.net/calfbaby/calfbb/419278#table_prefix)
* 數據庫基本操作
[* db_has](http://www.hmoore.net/calfbaby/calfbb/419278#db_has)
[* db_find](http://www.hmoore.net/calfbaby/calfbb/419278#db_find)
* [db_insert](http://www.hmoore.net/calfbaby/calfbb/419278#db_insert)
* [db_update](http://www.hmoore.net/calfbaby/calfbb/419278#db_update)
* [db_delete](http://www.hmoore.net/calfbaby/calfbb/419278#db_delete)
* [db_select](http://www.hmoore.net/calfbaby/calfbb/419278#db_select)
* [db_fetch](http://www.hmoore.net/calfbaby/calfbb/419278#db_fetch)
* [db_fetchall](http://www.hmoore.net/calfbaby/calfbb/419278#db_fetchall)
* [db_query](http://www.hmoore.net/calfbaby/calfbb/419278#db_query)
* [db_id](http://www.hmoore.net/calfbaby/calfbb/419278#db_id)
* 聚合查詢
* [db_count](http://www.hmoore.net/calfbaby/calfbb/419278#db_count)
* [db_max](http://www.hmoore.net/calfbaby/calfbb/419278#db_max)
* [db_min](http://www.hmoore.net/calfbaby/calfbb/419278#db_min)
* [db_avg](http://www.hmoore.net/calfbaby/calfbb/419278#db_avg)
* 調試
* [db_sql](http://www.hmoore.net/calfbaby/calfbb/419278#db_sql)
增加表前綴
### <span id = "table_prefix"> table_prefix() </span>
調用該函數以后,如果數據庫配置文件有配置表前綴,會自動加入表前綴。
~~~
$tablename = table_prefix('users');
echo $tablename;
//輸出 calf_users
~~~
數據庫基本操作
#### <span id = "table_prefix"> db_has() </span> 判斷記錄是否存在
* $tablename 參數指定要查詢的數據表名,此處傳入的表名不要使用table_prefixe()函數
* $fields 參數指定查詢返回的字段列表默認全部 指定字段傳入索引數組
* $where 參數指定查詢的條件
~~~
db_has($tablename, $where = []);
return boolean
~~~
#### 示例:
~~~
//根據uid為3的用戶記錄是否存在
$user = db_find('users',['uid' => 3]);
if ($user) {
echo 存在;
}
~~~
#### <span id = "db_find"> db_find() </span> 查詢單條記錄
* $tablename 參數指定要查詢的數據表名,此處傳入的表名不要使用table_prefixe()函數
* $fields 參數指定查詢返回的字段列表默認全部 指定字段傳入索引數組
* $where 參數指定查詢的條件
~~~
db_find($tablename, $fields = "*",$where = []);
return array | boolean
~~~
#### 示例:
~~~
//根據uid獲取用戶的用戶名和用戶Id信息
//生成的SQL等同于:SELECT username, uid FROM calf_users WHERE uid = '1' LIMIT 1
$user = db_find('users',['uid','username'],['uid' => 1]);
//生成的SQL等同于:SELECT * FROM ims_users WHERE username = 'mizhou' AND status = '1' LIMIT 1
$user = db_find('users','*',['username'=> 'mizhou' ,'status'=>1]);
~~~
#### <span id = "db_insert"> db_insert() </span> 添加紀錄
對指定數據表插入一條新記錄
$tablename 參數指定要插入記錄的數據表名,此處傳入的表名不要使用tablename()函數
$data 參數指定要插入的記錄,格式為與數據表字段對應的關聯數組
~~~
db_insert($tablename, $data=[]);
return int | boolean
~~~
#### 示例:
~~~
//添加一條用戶記錄,并判斷是否成功
$user_data = array(
'username' => 'mizhou1',
'status' => '1',
);
$result = db_insert('users', $user_data);
if (!empty($result)) {
$uid = $result;
echo '添加用戶成功UID為' . $uid;
}
~~~
#### <span id = "db_update"> db_update() </span> 更新記錄
更新指定的數據表的記錄
$tablename 參數指定要插入記錄的數據表名,此處傳入的表名不要使用tablename()函數
$data 參數指定要插入的記錄,格式為與數據表字段對應的關聯數組
$where 參數指定的條件
~~~
db_update($tablename, $data = [],$where = [])
return boolean
~~~
#### 示例:
~~~
//更uid等于2的用戶的用戶名
$user_data = array(
'username' => 'mizhou2',
);
$result = db_update('users', $user_data, array('id' => 2));
if (!empty($result)) {
echo '更新成功';
}
~~~
#### <span id = "db_delete"> db_delete() </span> 刪除記錄
更新指定的數據表的記錄
$tablename 參數指定要插入記錄的數據表名,此處傳入的表名不要使用tablename()函數
$where 參數指定的條件
~~~
db_delete($tablename, $where = [])
return int | boolean //如果更新成功 返回影響行數
~~~
#### 示例:
~~~
//刪除用戶名為mizhou2的記錄
$result = db_delete('users', array('username' => 'mizhou2'));
if (!empty($result)) {
echo '刪除成功';
}
~~~
#### <span id = "db_select"> db_select() </span> 查詢多條記錄
更新指定的數據表的記錄
$tablename 參數指定要插入記錄的數據表名,此處傳入的表名不要使用tablename()函數
$fields array ['id','name'] 返回字段
$where array 參數指定的條件
$page int 當前頁數
$pagesize int 每頁數量
$orderby array 排序 ['id'=>'DESC']
~~~
db_select($tablename, $fields = "*",$where = [],$page=1,$pagesize=10,$orderby=[])
~~~
#### 示例:
~~~
//刪除用戶名為mizhou2的記錄
$result = db_select(self::$tableName,$fields = "*",$where,$data['current_page'],$data['page_size'],$orderby=['sort'=>'DESC']);
~~~
#### <span id = "db_fetch"> db_fetch() </span>
更新指定的數據表的記錄
$sql 參數指定要返回記錄集的SQL語句
$params 參數指定為SQL語句中的參數綁定傳值,防止SQL注入
需要注意的是使用參數綁定時,SQL語中等號后不需要使用引號,傳入的值必須與綁定的名稱一致
~~~
db_fetch($sql, $params = array());
return array | boolean
~~~
#### 示例:
~~~
// :uid 是參數的一個占位符,沒有使用引號,傳入的第二個參數中要與SQL中的占位名稱相同
$user = db_fetch("SELECT username, uid FROM ".tablename('users')." WHERE uid = :uid LIMIT 1", array(':uid' => 1));
// LIKE 占位的使用方法
$user = db_fetch("SELECT * FROM ".tablename('users')." WHERE username LIKE :username", array(':username' => '%mizhou%'));
~~~
#### <span id = "db_fetchall"> db_fetchall() </span>
根據SQL語句,查詢全部記錄,使用方法與db_fetch相同
$sql 參數指定要返回記錄集的SQL語句
$params 參數指定為SQL語句中的參數綁定傳值,防止SQL注入
需要注意的是使用參數綁定時,SQL語中等號后不需要使用引號,傳入的值必須與綁定的名稱一致
~~~
db_fetchall($sql, $params = array());
return array | boolean
~~~
#### 示例:
~~~
// :uid 是參數的一個占位符,沒有使用引號,傳入的第二個參數中要與SQL中的占位名稱相同
$user = db_fetchall("SELECT username, uid FROM ".tablename('users')." WHERE uid = :uid LIMIT 1", array(':uid' => 1));
// LIKE 占位的使用方法
$user = db_fetchall("SELECT * FROM ".tablename('users')." WHERE username LIKE :username", array(':username' => '%mizhou%'));
~~~
#### <span id = "db_query"> db_query() </span>
運行一條SQL語句
$sql 參數指定要返回記錄集的SQL語句
$params 參數指定為SQL語句中的參數綁定傳值,防止SQL注入
需要注意的是使用參數綁定時,SQL語中等號后不需要使用引號,傳入的值必須與綁定的名稱一致
~~~
db_query($sql, $params = array());
return array | boolean
~~~
#### 示例:
~~~
//更uid等于2的用戶的用戶名
$result = db_query("UPDATE ".tablename('users')." SET username = :username, age = :age WHERE uid = :uid", array(':username' => 'mizhou2', ':age' => 18, ':uid' => 2));
//刪除用戶名為mizhou2的記錄
$result = db_query("DELETE FROM ".tablename('users')." WHERE uid = :uid", array(':uid' => 2));
if (!empty($result)) {
message('刪除成功');
}
~~~
#### <span id = "db_id"> db_id() </span>
獲取最近一條insert 插入記錄的自增id 注意只能insert操作有效
~~~
db_id();
return int
~~~
#### 示例:
~~~
db_query('INSERT INTO user (username, password) VALUES (:username, :password)',[':username'=>'2dd','password'=>'123213']);
$insert_id=db_id();
var_dump($insert_id);
//輸出插入的自增id
~~~
#### <span id = "db_sql"> db_sql() </span>
獲取執行的sql語句,
~~~
db_sql(true);//true 代表獲取執行的所有sql語句,默認false,只獲取最后一條
return stirng || array;
~~~
#### 示例:
~~~
$data=db_insert('user',['username'=>123,'password'=>'1231232']);
$sql=db_query('INSERT INTO user (username, password) VALUES (:username, :password)',[':username'=>'2dd','password'=>'123213']);
$sql=db_fetch("select * from users id=:id",[':id'=>'11']);
$debug=db_sql(true);
~~~
#### 輸出:
~~~
Array
(
[0] => INSERT INTO user (username, password) VALUES (123, '1231232')
[1] => INSERT INTO user (username, '123213') VALUES ('2dd', '123213')
[2] => select * from users id='11'
)
~~~
~~~
~~~
- 框架介紹
- 初衷
- 簡介
- 目錄結構
- 開發規范
- 后端規范
- 數據庫設計規范
- 數據庫
- 函數操作數據庫
- Medoo操作數據庫
- pdo操作數據庫
- ORM
- 配置文件
- 主配置文件
- 數據庫配置文件
- 文件上傳配置文件
- 路由配置文件
- 模塊獨立配置文件
- 視圖
- 視圖說明
- 常用標簽
- include
- if-else
- for
- G.url
- 大G
- 路由
- 普通模式
- 偽靜態模式
- 兼容模式
- 自定義路由
- 全局常量
- 全局函數
- p
- show_json
- error
- success
- url
- 類庫
- 驗證類
- 文件類
- file_upload上傳
- file_image_thumb縮略
- file_image_crop裁剪
- 緩存類
- 日志類
- 擴展
- 插件應用
- 模版