# ThinkPhP5 视频教程(八):数据库-基本操作
![](https://box.kancloud.cn/8deae868374173fcbbe17ed99f2287e0_1330x737.png)
* 数据库配置
我们给应用定义数据库配置文件(appliation/database.php),里面设置了应用的全局数据库配置信息。
该数据库配置文件的基本定义如下
~~~
return [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'test',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库连接端口
'hostport' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => '',
// 数据库调试模式
'debug' => true,
];
~~~
* 切换数据库
为了简化代码,通常的做法是事先在配置文件中定义好多个数据库的连接配置,例如,我们在应用配置文件(application/config.php)中添加配置如下:
~~~
// 数据库配置1
'db1' => [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'thinkphp',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '123456',
// 数据库连接端口
'hostport' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'think_',
],
// 数据库配置2
'db2' => [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'test',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库连接端口
'hostport' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'test_',
],
~~~
然后就可以直接在connect方法中传入配置参数进行切换数据库连接,例如:
~~~
$result = Db::connect('db1')->query('select * from think_data where id = 1');
$result = Db::connect('db2')->query('select * from think_data where id = 1');
~~~
* 参数绑定
实际开发中,可能某些数据使用的是外部传入的变量,为了让查询操作更加安全,我们建议使用参数绑定机制,例如上面的操作可以改为:
~~~
Db::execute('insert into think_data (id, name ,status) values (?, ?, ?)', [8, 'thinkphp', 1]);
$result = Db::query('select * from think_data where id = ?', [8]);
dump($result);
~~~
也支持命名占位符绑定,例如:
~~~
Db::execute('insert into think_data (id, name , status) values (:id, :name, :status)', ['id' => 10, 'name' => 'thinkphp', 'status' => 1]);
$result = Db::query('select * from think_data where id=:id', ['id' => 10]);
dump($result);
~~~
~~~[youku]
XMjc0MDQxNDg5Mg =856x523
~~~
### 课程用到的数据库到TPshop官网去下载开源程序,安装程序后就有TPshop数据库
TPshop官网下载地址 http://www.tp-shop.cn
### 视频播放密码: tpshop 如提示密码错误, 请多更换几个浏览器试试
http://pan.baidu.com/s/1nvIvkoD 高清视频下载地址(含demo)
**TP5粉丝群: 364702379**
[需要TPshop商城源码的可前往TPshop官网免费下载安装](http://www.tp-shop.cn)
- 第一讲、课程大纲
- 第二讲、入门与安装-上
- 第二讲、入门与安装-下
- 第三讲、URL和路由-路由
- 第四讲、URL和路由-URL
- 第五讲、请求和响应-请求
- 第六讲、请求和响应-响应
- 第七讲、SQL追踪器
- 第八讲、数据库-基本操作
- 第九讲、数据库操作-事务
- 第十讲、查询语言-上
- 第十一讲、查询语言-下
- 第十二讲、模型和关联-上
- 第十三讲、模型和关联-下
- 第十四讲、读取器与修改器
- 第十五讲、转换与自动完成
- 第十六讲、查询范围
- 第十七讲、输入和验证-上
- 第十八讲、输入和验证-下
- 第十九讲、关联-一
- 第二十讲、关联-二
- 第二十一讲、关联-三
- 第二十二讲、关联-四
- 第二十三讲、关联-五
- 第二十四讲、模型输出
- 第二十五讲、视图和模板-一
- 第二十六讲、视图和模板-二
- 第二十七讲、调试和日志
- 第二十八讲、API开发
- 第二十九讲、扩展
- 第三十讲、浅析session,cookie机制
- 第三十一讲、session的使用
- 第三十二讲、cookie的使用
- 第三十三讲、验证码
- 第三十四讲、文件上传
- 第三十五讲、图像处理
- 第三十六讲、版本3.2和5的差别
- 第三十七讲、未来与总结
- 第二套、TPshop大型项目实战
- TPshop项目实战
- 第一讲、内容介绍
- 第二讲、TPshop window安装
- 第三讲、TPshop linux安装
- 第四讲、TPshop目录结构
- 第五讲、单点登录
- 第六讲、支付插件原理
- 第七讲、支付宝支付集成
- 第八讲、微信支付
- 第九讲、银联支付
- 第十讲、TPshop QQ快捷登录
- 第十一讲、支付宝登录
- 第十二讲,微信扫码登录
- 第十三讲,新手入门微信开发
- 第十四讲,10分钟将TPshop部署服务器上线
- 第十五讲,网站真实高并发架设
- 第十六讲,网站真实高并发架设