ThinkPHP5.0數據庫基本操作


一、查詢數據操作如下:

db('user')->where('id',1)->find();//查詢一條數據
db('user')->where('status',1)->select();//查詢多條數據

二、添加數據操作如下:

// 添加單條數據
$data = ['foo' => 'bar', 'bar' => 'foo'];
db('user')->insert($data);

// 添加多條數據
$list = [ ['foo' => 'bar', 'bar' => 'foo'],
    ['foo' => 'bar1', 'bar' => 'foo1'],
    ['foo' => 'bar2', 'bar' => 'foo2']
];
db('user')->insertAll($list);

三、修改數據操作如下:

// 更新數據表中的數據
db('user')->where('id',1)->update(['name' => 'thinkphp']);
// 更新某個字段的值
db('user')->where('id',1)->setField('name','thinkphp');
// 自增 score 字段
db('user')->where('id', 1)->setInc('score');
// 自減 score 字段
db('user')->where('id', 1)->setDec('score');

四、刪除數據操作如下:

// 根據主鍵刪除
db('user')->delete(1);
// 條件刪除    
db('user')->where('id',1)->delete();

五、查詢條件方法:

where方法
可以使用where方法進行AND條件查詢:
Db::table('think_user')
    ->where('name','like','%thinkphp')
    ->where('status',1)
    ->find();
多字段相同條件的AND查詢可以簡化為如下方式:
Db::table('think_user')
    ->where('name&title','like','%thinkphp')
    ->find();
whereOr方法
使用whereOr方法進行OR查詢:
Db::table('think_user')
    ->where('name','like','%thinkphp')
    ->whereOr('title','like','%thinkphp')
    ->find();
多字段相同條件的OR查詢可以簡化為如下方式:
Db::table('think_user')
    ->where('name|title','like','%thinkphp')
    ->find();
混合查詢
where方法和whereOr方法在復雜的查詢條件中經常需要配合一起混合使用,下面舉個例子:

$result = Db::table('think_user')->where(function ($query) {
    $query->where('id', 1)->whereor('id', 2);
})->whereOr(function ($query) {
    $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp');
})->select();
生成的sql語句類似於下面:

SELECT * FROM `think_user` WHERE  (  `id` = 1 OR `id` = 2 ) OR (  `name` LIKE 'think' OR `name` LIKE 'thinkphp' )
注意閉包查詢里面的順序,而且第一個查詢方法用where或者whereOr是沒有區別的。
getTableInfo方法
使用getTableInfo可以獲取表信息,信息類型 包括 fields,type,bind,pk,以數組的形式展示,可以指定某個信息進行獲取

// 獲取`think_user`表所有信息
Db::getTableInfo('think_user');
// 獲取`think_user`表所有字段
Db::getTableInfo('think_user', 'fields');
// 獲取`think_user`表所有字段的類型
Db::getTableInfo('think_user', 'type');
// 獲取`think_user`表的主鍵
Db::getTableInfo('think_user', 'pk');

七、查詢表達示如下:

where('字段名','表達式','查詢條件');
whereOr('字段名','表達式','查詢條件');
表達式不分大小寫,支持的查詢表達式有下面幾種,分別表示的含義是:

 

例子:

where('id','eq',100);
where('id','=',100);

七、數組查詢操作如下:

$map['name'] = 'thinkphp';
$map['status'] = 1;
// 把查詢條件傳入查詢方法
Db::table('think_user')->where($map)->select(); 

// 助手函數
db('user')->where($map)->select();

使用字符串條件直接查詢和操作,例如:

Db::table('think_user')->where('type=1 AND status=1')->select(); 

使用字符串條件的時候,建議配合預處理機制,確保更加安全,例如:

Db::table('think_user')->where("id=:id and username=:name")->bind(['id'=>[1,\PDO::PARAM_INT],'name'=>'thinkphp'])->select();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM