## 數據庫配置
如果你是獨立使用,首先需要配置數據庫的連接參數,使用如下方式:
~~~
use think\facade\Db;
// 數據庫配置信息設置(全局有效)
Db::setConfig([
// 默認數據連接標識
'default' => 'mysql',
// 數據庫連接信息
'connections' => [
'mysql' => [
// 數據庫類型
'type' => 'mysql',
// 主機地址
'hostname' => '127.0.0.1',
// 用戶名
'username' => 'root',
// 數據庫名
'database' => 'demo',
// 數據庫編碼默認采用utf8
'charset' => 'utf8',
// 數據庫表前綴
'prefix' => 'think_',
// 數據庫調試模式
'debug' => true,
],
],
]);
~~~
如果你在ThinkPHP`6.0+`使用的話,無需動態設置,直接在`database.php`數據庫配置文件中按如下方式定義即可。
~~~
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
// 數據庫類型
'type' => 'mysql',
// 服務器地址
'hostname' => '127.0.0.1',
// 數據庫名
'database' => 'thinkphp',
// 數據庫用戶名
'username' => 'root',
// 數據庫密碼
'password' => '',
// 數據庫連接端口
'hostport' => '',
// 數據庫連接參數
'params' => [],
// 數據庫編碼默認采用utf8
'charset' => 'utf8',
// 數據庫表前綴
'prefix' => 'think_',
],
],
];
~~~
> 當然在ThinkPHP里面可以使用環境變量來定義數據庫連接配置信息
## 配置參數
數據庫配置支持多個數據庫連接,而`default`配置用于設置默認使用的數據庫連接配置。`connections`則配置具體的數據庫連接信息,`default`配置參數定義的連接配置必須要存在。
下面是默認支持的數據庫連接參數:
| 參數名 | 描述 | 默認值 |
| --- | --- | --- |
| type | 數據庫類型 | 無 |
| hostname | 數據庫地址 | 127.0.0.1 |
| database | 數據庫名稱 | 無 |
| username | 數據庫用戶名 | 無 |
| password | 數據庫密碼 | 無 |
| hostport | 數據庫端口號 | 無 |
| dsn | 數據庫連接dsn信息 | 無 |
| params | 數據庫連接參數 | 空 |
| charset | 數據庫編碼 | utf8 |
| prefix | 數據庫的表前綴 | 無 |
| deploy | 數據庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器) | 0 |
| rw\_separate | 數據庫讀寫是否分離 主從式有效 | false |
| master\_num | 讀寫分離后 主服務器數量 | 1 |
| slave\_no | 指定從服務器序號 | 無 |
| fields\_strict | 是否嚴格檢查字段是否存在 | true |
| auto\_timestamp | 自動寫入時間戳字段 | false |
|break_reconnect|是否開啟斷線重連|false|
| fields_cache | 是否開啟字段緩存 | false|
|schema_cache_path|字段緩存目錄|無|
|trigger_sql|是否開啟SQL監聽(日志)|true|
| query | 指定查詢對象 | think\\db\\Query |
`type`參數用于指定數據庫類型,內置支持的類型包括:
| type | 數據庫 |
| --- | --- |
| mysql | MySQL |
| sqlite | SqLite |
| pgsql | PostgreSQL|
| sqlsrv | SqlServer |
|mongo|MongoDb|
|oracle|Oracle|
> 除了以上內置的數據庫類型之外,你可以自己擴展數據庫連接類型,通常情況下,`type`配置就是你的數據庫連接對象類名。
常用數據庫連接參數(`params`)可以參考[PHP在線手冊](http://php.net/manual/zh/pdo.constants.php)中的以`PDO::ATTR_`開頭的常量。
`dsn`配置可用于一些自定義的高級連接參數,例如:
```
'dsn' => 'mysql:dbname=testdb;host=127.0.0.1'
```
如果同時定義了參數化數據庫連接信息和`dsn`配置,則會優先使用`dsn`配置參數定義的數據庫連接信息。
>[danger] 如果是使用`pgsql`數據庫驅動的話,請先導入 `db/connector/pgsql.sql`文件到數據庫執行。
- 簡介
- 數據庫配置
- 分布式數據庫
- 查詢構造器
- 查詢數據
- 新增數據
- 更新數據
- 刪除數據
- 鏈式操作
- Where
- Table
- Alias
- Field
- Strict
- Limit
- Page
- Order
- Group
- Having
- Join
- Union
- Distinct
- Lock
- Cache
- Comment
- FetchSql
- Force
- Partition
- Replace
- FailException
- Extra
- Duplicate
- Sequence
- Procedure
- View
- 聚合查詢
- 分頁查詢
- 時間查詢
- 高級查詢
- 子查詢
- 原生查詢
- 事務操作
- 存儲過程
- 查詢事件
- JSON字段
- 模型
- 定義
- 新增
- 更新
- 刪除
- 查詢
- 查詢范圍
- 只讀字段
- JSON字段
- 自動時間寫入
- 獲取器
- 修改器
- 搜索器
- 類型轉換
- 模型輸出
- 模型事件
- 虛擬模型
- 關聯
- 一對一關聯
- 一對多關聯
- 遠程一對多
- 遠程一對一
- 多對多關聯
- 多態一對多
- 多態一對一
- 關聯預載入
- 關聯統計
- 關聯輸出
- SQL監聽
- 緩存機制
- 字段緩存
- 查詢緩存
- 擴展
- 自定義查詢類
- 自定義數據庫驅動