① 誰能提取一個ThinkPHP5.0操作資料庫的M完整用法
M方法用於實例化一個基礎模型類,和D方法的區別在於:
1、不需要自定義模型類,減少IO載入,性能較好;
2、實例化後只能調用基礎模型類(默認是Model類)中的方法;
3、可以在實例化的時候指定表前綴、資料庫和資料庫的連接信息;
D方法的強大則體現在你封裝的自定義模型類有多強,不過隨著新版ThinkPHP框架的基礎模型類的功能越來越強大,M方法也比D方法越來越實用了。
② thinkphp 自定義類 可否對資料庫進行操作 比如 add
毫無疑問是可以的! thinkphp 就是一個php開發框架 好像一座樓房的地基 你可以按照自己的思路 擴展 細節
③ thinkphp對資料庫操作有哪些內置函數
8.4.4 Model類
getModelName() 獲取當前Model的名稱
getTableName() 獲取當前Model的數據表名稱
switchModel(type,vars=array()) 動態切換模型
table() 設置當前操作的數據表
field() 設置要查詢的數據欄位
where() 設置查詢或者操作條件
data(data) 設置數據對象
order(order) 設置排序
limit(limit) 查詢限制
page(page) 查詢分頁
join(join) 進行JOIN查詢
having(having) 進行having查詢
group(group) 進行group查詢
lock(lock) 查詢鎖定
distinct(distinct) 唯一性查詢
count(field) 記錄統計
sum(field) 總數查詢
min(field) 最小值查詢
max(field) 最大值查詢
avg(field) 平均值查詢
_initialize() 模型初始化方法
_facade(data) 對保存到資料庫的數據進行處理
_before_write(&data) 寫入數據前的回調方法 包括新增和更新
add(data='',options=array()) 新增數據
_before_insert(&data,options) 寫入數據前的回調方法
_after_insert(data,options) 寫入數據後的回調方法
selectAdd(fields='',table='',options=array()) 通過Select方式添加記錄
save(data='',options=array()) 更新數據到資料庫
_before_update(&data,options) 更新數據前的回調方法
_after_update(data,options) 更新成功後的回調方法
delete(options=array()) 刪除數據
_after_delete(data,options) 刪除成功後的回調方法
select(options=array()) 查詢數據集
_after_select(&resultSet,options) 查詢成功後的回調方法
findAll(options=array()) select方法的別名
_options_filter(&options) 表達式過濾回調方法
find(options=array()) 查詢數據
_after_find(&result,options) 查詢成功的回調方法
setField(field,value,condition='') 設置記錄的某個欄位值
setInc(field,condition='',step=1) 欄位值增長
setDec(field,condition='',step=1) 欄位值減少
getField(field,condition='',sepa=' ') 獲取某個欄位值
create(data='',type='') 創建數據對象
autoCheckToken(data) 表單令牌驗證
query(sql) 執行原生SQL查詢
execute(sql='') 執行原生SQL操作
startTrans() 啟動事務
commit() 提交事務
rollback() 事務回滾
getError() 獲取模型的錯誤信息
getDbError() 獲取資料庫的錯誤信息
getLastInsID() 獲取最後執行的SQL語句
getPk() 獲取主鍵名稱
getDbFields() 獲取數據表的欄位信息
regex(value,rule) 使用正則驗證數據
setProperty(name,value) 設置模型的屬性值
2.1版新增方法:
db(linkNum,config='') 切換當前資料庫連接
高級模型類AdvModel
topN(count,options=array()) 查詢滿足條件的前N個記錄
getN(position=0,options=array()) 查詢符合條件的第N條記錄
0 表示第一條記錄 -1 表示最後一條記錄
first(options=array()) 獲取滿足條件的第一條記錄
last(options=array()) 獲取滿足條件的最後一條記錄
returnResult(data,type='') 返回指定的數據類型
setLazyInc(field,condition='',step=1,lazyTime=0) 欄位值延遲增長
setLazyDec(field,condition='',step=1,lazyTime=0) 欄位值延遲減少
addConnect(config,linkNum=NULL) 增加資料庫連接
delConnect(linkNum) 刪除資料庫連接
closeConnect(linkNum) 關閉資料庫連接
switchConnect(linkNum,name='') 切換資料庫連接
patchQuery(sql=array()) 批處理執行SQL語句
getPartitionTableName(data=array()) 得到分表的的數據表名
④ thinkphp 3.1 跨資料庫操作
$this->db(3,"mysql://root:123456@localhost:3306/test")->query("查詢SQL");
⑤ 怎麼讓thinkphp多個資料庫執行事務操作
1、安裝mysql追蹤器2、MySQL預處理語句prepare、execute3、了解MySQL事務4、安裝sqlyong工具1、資料庫配置2、query execute原生sql語句 增刪改查原生:Db::execute('insert into think_data(name) values("ddd")');增刪改都可以用execute,查用query原生:DB::query('select *from demo where id<5');3、參數綁定 命名佔位符綁定參數的綁定:$result3 = Db::execute('select *from demo where id=?',
⑥ 怎麼用thinkphp編寫操作資料庫
database infomastion
$db_info=array(
'h'=>'localhost',
'u'=>'root',
'pwd'=>'program',
'dbname'=>'agency'
);
$mysqli = new mysql($db_info);
$query = $mysqli->query("select * from user_list");
while($row=$mysqli->fetch_row($query)){
echo $row[1];
}
⑦ 如何實現thinkphp中Db類的方法調用風格
我們先來看下官網對listen的說明:如果開啟資料庫的調試模式的話,你可以對資料庫執行的任何SQL操作進行監聽。這無疑很方便我們進行增刪改查的調試,以及通過執行的時間進行有效的sql優化,
友情提示:資料庫監聽要寫在執行sql語句的前面,因為只有在調用Db::listen之後的SQL語句才會被監聽,調用之前的語句不會被監聽。至於為什麼我們後面講!
使用如下方法:
123456Db::listen(function($sql,$time,$explain){//記錄SQLecho$sql.'['.$time.'s]';//查看性能分析結果mp($explain);});有很多小夥伴疑問該方法應該放在哪裡?使用之後為什麼沒有效果,很可能就是提示上所說的那樣了,那麼接下來我們簡單分析一下這個方法!
1、從Db::listen(),可以看出listen是Db中的一個靜態方法,那麼我們就去找db類
2、從Db類中沒有找到該方法,但是我們從use thinkdbConnection可以看出,引入了Connection類,我們在這個類找一下這個方法!
12345678910/***監聽SQL執行*@accesspublic*@paramcallable$callback回調方法*@returnvoid*/publicfunctionlisten($callback){self::$event[]=$callback;}3、event 保存我們傳入的回調方法
4、在看下面這2個方法
5、當我們執行了sql語句,就會觸發會調用debug方法將執行日誌寫入日誌文件中,同事調用trigger方法,如果我們最開始已經傳入了回調方法,也就是
1self::$event不為空,(說明我們在執行sql語句之前就已經設置了監聽)我們將調用我們的回調函數!
1call_user_func_array總結:在執行sql語句之前我們需要先設置監聽,這就是為什麼要把Db::listen()寫在執行sql語句的前面!
下面我們來看下實際的效果:
效果圖:
⑧ ThinkPHP中查詢資料庫where()中的條件必須包含主鍵值嗎
不用的哈,用什麼PHP框架,就要多看這個框架的手冊。
http://document.thinkphp.cn/manual_3_2.html#where,
就如此題來說,你傳遞過來的id值,就是表的主鍵。
pid一般是為父鍵的意思,$catemodel->where('pid=%d',$_GET['id'])->select();
查詢的是這個id所對應子集的。
樓上所說這種,有點曲解樓主的意思。樓主的意思,估計就是子集沒數據的緣故。
⑨ MongoDB在ThinkPHP裡面怎麼進行資料庫操作
連接資料庫
$conn=new Mongo(「mongodb://sa:123@localhost」); #帶用戶名密碼
選擇資料庫和集合
$db=$conn->selectDB(「mydb」);
$collection = $db->selectCollection(『column』);
增刪改查
1.插入
$array=array(『column_name』=>』col』.rand(100,999),』column_exp』=>』xiaocai』);
$result=$collection->insert($array); #簡單插入
2. 修改更新
$where=array(『column_name』=>』col123′);
$newdata=array(『column_exp』=>』GGGGGGG』,'column_fid』=>444);
$result=$collection->update($where,array(『$set』=>$newdata));
3.刪除
$where=array(『column_name』=>』col685′);
$result=$collection->update($where,array(『$unset』=>』column_exp』));
4.查詢
$result = $collection->find();以後這類問題不會的話你可以去後盾人上面看看哦⊙∀⊙!⊙∀⊙!⊙∀⊙!⊙∀⊙!裡面有教學視頻
⑩ thinkphp3.2.3版本的資料庫增刪改查實現代碼
框架thinkphp
版本:3.2.3
內容:資料庫操作
1.
多表查找一條數據
M('a表')->join("b表
on
b表.id=a表.id")->where('條件')->find();
2.查找一條數據
M('a表')->where('條件')->find();
3.多表查詢所有數據
M('a表')->join("b表
on
b表.id=a表.id")->where('條件')->select();
4.查詢所有數據
M('a表')->where('條件')->select();
5.增加一條數據
M('a表')->add($data);
6.刪除一條數據
M('a表')->where('條件')->delete($data);
7.修改一條數據
M('a表')->where('id=5')->save();
以上就是小編為大家帶來的thinkphp3.2.3版本的資料庫增刪改查實現代碼的全部內容了,希望對大家有所幫助,多多支持腳本之家~