ThinkPHP5-資料庫操作
一、資料庫配置
1、在應用程式目錄或模組目錄下面的database.php中加入下面的設定參數:
return [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_', // 数据库调试模式 'debug' => false, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, ];
2、字串方式:
Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8'); 数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
二、query(查詢操作)execute(寫入操作) 原始生態SQL語句增刪改查
Db::execute("insert into t_test(username,password) values('qqq','qqq')"); Db::execute("update t_test set username ='55' where id = '10'"); Db::query('select * from t_test where id = 5'); Db::execute('delete from t_test where id = 6');
三參數綁定命名佔位符綁定
#支持参数绑定: Db::query('select * from think_user where id=?',[8]); Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']); 支持占位符绑定: Db::query('select * from think_user where id=:id',['id'=>8]); Db::execute('insert into think_user (id, name) values (:id, :name)',['id'=>8,'name'=>'thinkphp']);
四、查詢建構器
1、查詢資料:
(1)查詢一個資料使用:
// table方法必须指定完整的数据表名Db::table('think_user')->where('id',1)->find();//find 方法查询结果不存在,返回 null
(2)查詢資料集
Db::table('think_user')->where('status',1)->select(); select 方法查询结果不存在,返回空数组
如果設定了資料表前綴參數的話,可以使用
Db::name('user')->where('id',1)->find();Db::name('user')->where('status',1)->select();
如果你的資料表沒有使用表前綴功能,那麼name和table方法的一樣的效果。
(3)助手函數
系統提供了一個db助手函數,可以更方便的查詢:
db('user')->where('id',1)->find(); db('user')->where('status',1)->select();
2、新增資料:
(1)新增一條資料
$data = ['foo' => 'bar', 'bar' => 'foo'];Db::table('think_user')->insert($data);
(2)新增多條資料
$data = [ ['foo' => 'bar', 'bar' => 'foo'], ['foo' => 'bar1', 'bar' => 'foo1'], ['foo' => 'bar2', 'bar' => 'foo2'] ];Db::name('user')->insertAll($data); insertAll 方法添加数据成功返回添加成功的条数
(3)助手函數
// 添加单条数据 db('user')->insert($data);// 添加多条数据 db('user')->insertAll($list);
3、更新資料:
(1)更新資料表中的資料
Db::table('think_user') ->where('id', 1) ->update(['name' => 'thinkphp']);
(2)助手函數
// 更新数据表中的数据 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');
4、刪除資料
(1)刪除資料表中// 依主鍵刪除
Db::table('think_user')->delete (1);
Db::table('think_user')->delete([1,2,3]);
// 條件刪除
Db::table('think_user ')->where('id',1)->delete();
Db::table('think_user')->where('id','<',10)-> ;delete();助理函數
// 根据主键删除 db('user')->delete(1);// 条件删除 db('user')->where('id',1)->delete();
五、鍊式操作
假如我們現在要查詢一個User表的滿足狀態為1的前10筆記錄,並希望按照使用者的建立時間排序,程式碼如下:
Db::table('think_user') ->where('status',1) ->order('create_time') ->limit(10) ->select();
這裡的where、order和limit方法就稱為鍊式運算式方法,除了select方法必須放到最後一個外(因為select方法並不是鍊式運算式),鏈式操作的方法呼叫順序沒有先後。
本文說明關於ThinkPHP5資料庫的相關操作 ,更多相關內容請關注php中文網。
相關推薦:
以上是關於ThinkPHP5資料庫的相關操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!