# 數據庫
Nette 框架提供了一個強大的訪問數據庫的層。
* 輕松SQL查詢
* 輕松獲取數據
* 高效的查詢并且不發送不必要的數據
Nette\Database\Connection類是使用PDO連接到數據庫類。 核心功能由Nette\Database\Context提供。 Nette\Database\Table層為表查詢提供了增強層。
## 創建連接
要創建新的數據庫連接,只需創建一個新的Nette\Database\Connection類實例
~~~
use Nette\Database\Connection;
$connection = new Connection($dsn, $user, $password);
~~~
Nette\Database將基于您的數據庫服務器創建自己合適的內部驅動程序。 此內部驅動程序調整數據庫服務器的Nette\Database行為。 Nette支持此數據庫服務器:

連接構造函數的第4個可選參數允許您指定一些選項。 這些選項傳遞給PDO構造函數和內部驅動程序構造函數,因此它們可以包含PDO實例和驅動程序實例的配置。
如果希望在創建Connection實例后立即創建與數據庫服務器的連接,但僅在使用數據庫時創建,則可以將配置設置為“lazy”=> TRUE。
內部驅動程序類名稱由提供的DSN檢測。 但是,您可以提供自己實現的內部驅動程序。 為此,請使用driverClass鍵作為選項傳遞驅動程序名稱。
~~~
$connection = new Connection($dsn, $user, $password, [
'lazy' => FALSE,
'driverClass' => 'App\YourSpecificDriverImplementationName'
]);
~~~
創建連接的最簡單的方法是在應用程序配置中配置一個連接,這允許創建多個連接,并幫助您將數據庫面板添加到Tracy調試欄。我們就記這個就行了,上面只是了解一下。發現官網教程很多都不直接說重點。
~~~
database:
default:
dsn: "mysql:host=127.0.0.1;dbname=test"
user: "root"
password: "password"
options: [PDO::MYSQL_ATTR_COMPRESS = true]
debugger: true # 調試器欄面板
explain: true #在調試器欄中解釋查詢
conventions: discovered # 或靜態或類的名稱,默認被發現
autowired: true
anotherConnection:
dsn: ...
autowired: false
~~~
反正記得設置數據庫連接就從下圖著手。其它都不是重要的。

## Queries(查詢)
查詢核心功能由Nette\Database\Context提供。 Database \ Context允許您通過調用查詢方法輕松查詢數據庫:
~~~
use Nette\Database\Context;
$database = new Context($connection);
$database->query('INSERT INTO users', [ // 一個數組可以是一個參數
'name' => 'Jim',
'created' => new DateTime, //或一個DateTime對象
'avatar' => fopen('image.gif', 'r'), // 或一個文件對象
], ...); // 甚至可以使用多個插入件
$database->query('UPDATE users SET ? WHERE id=?', $data, $id);
$database->query('SELECT * FROM categories WHERE id=?', 123)->dump();
~~~
- Nette簡介
- 快速開始
- 入門
- 主頁
- 顯示文章詳細頁
- 文章評論
- 創建和編輯帖子
- 權限驗證
- 程序員指南
- MVC應用程序和控制器
- URL路由
- Tracy - PHP調試器
- 調試器擴展
- 增強PHP語言
- HTTP請求和響應
- 數據庫
- 數據庫:ActiveRow
- 數據庫和表
- Sessions
- 用戶授權和權限
- 配置
- 依賴注入
- 獲取依賴關系
- DI容器擴展
- 組件
- 字符串處理
- 數組處理
- HTML元素
- 使用URL
- 表單
- 驗證器
- 模板
- AJAX & Snippets
- 發送電子郵件
- 圖像操作
- 緩存
- 本土化
- Nette Tester - 單元測試
- 與Travis CI的持續集成
- 分頁
- 自動加載
- 文件搜索:Finder
- 原子操作