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中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号