yiiapi/docs/guide/ru/database.dao.txt
(开头部分) 16KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
Объекты доступа к данным (DAO)
==============================
Объекты доступа к данным (DAO) предоставляют общий API для доступа к данным, хранящимся в
различных СУБД. Это позволяет без проблем поменять используемую СУБД на любую другую
без необходимости изменения кода, использующего DAO для доступа к данным.
Yii DAO является надстройкой над [PHP Data Objects (PDO)](http://www.php.net/manual/ru/book.pdo.php) -
расширением, которое предоставляет унифицированный доступ к данным многих популярных
СУБД, таких как MySQL, PostgreSQL. Поэтому для использования Yii DAO необходимо, чтобы
были установлены расширение PDO и соответствующий используемой базе данных драйвер PDO (например, `PDO_MYSQL`).
Yii DAO состоит из четырёх основных классов:
- [CDbConnection]: представляет подключение к базе данных.
- [CDbCommand]: представляет запрос к базе данных, который необходимо выполнить.
- [CDbDataReader]: представляет однонаправленный поток строк данных, возвращаемых в ответ на запрос.
- [CDbTransaction]: представляет транзакцию базы данных.
Далее мы проиллюстрируем использование Yii DAO на различных примерах.
Соединение с базой данных
-------------------------
Для установления соединения с базой необходимо создать экземпляр класса [CDbConnection] и
активировать его. Дополнительная информация, необходимая для подключения к БД (хост, порт, имя пользователя, пароль и т.д.), указывается
в DSN (Data Source Name). В случае возникновения ошибки в процессе соединения с БД будет выброшено исключение
(например, неверный DSN или неправильные имя пользователя/пароль).
~~~
[php]
$connection=new CDbConnection($dsn,$username,$password);
// устанавливаем соединение
// можно использовать конструкцию try…catch для перехвата возможных исключений
$connection->active=true;
…
$connection->active=false; // close connection
~~~
Формат DSN зависит от используемого драйвера PDO. Как правило, DSN состоит из имени драйвера PDO,
за которым следует двоеточие, далее указываются параметры подключения, соответствующие синтаксису подключения
используемого драйвера. Подробнее с этим можно ознакомиться в [документации PDO](http://www.php.net/manual/ru/pdo.construct.php).
Ниже представлены несколько основных форматов DSN:
- SQLite: `sqlite:/path/to/dbfile`
- MySQL/MariaDB: `mysql:host=localhost;dbname=testdb`
- PostgreSQL: `pgsql:host=localhost;port=5432;dbname=testdb`
- SQL Server: `mssql:host=localhost;dbname=testdb`
- Oracle: `oci:dbname=//localhost:1521/testdb`
Поскольку [CDbConnection] наследует класс [CApplicationComponent], мы можем использовать его
в качестве [компонента приложения](/doc/guide/basics.application#application-component). Для этого нужно настроить
компонент `db` в [конфигурации приложения](/doc/guide/basics.application#application-configuration)
следующим образом:
~~~
[php]
array(
…
'components'=>array(
后面还有 182 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
