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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。