Spec-Zone .ru
спецификации, руководства, описания, API

22.9.3.2. Краткий обзор

Copyright 1997-2012 PHP Documentation Group.

Этот раздел обеспечивает введение в опции, доступные Вам, разрабатывая приложение PHP, которое должно взаимодействовать с базой данных MySQL.

Каков API?

Прикладной программный интерфейс, или API, определяет классы, методы, функции и переменные, которые должно будет вызвать Ваше приложение, чтобы выполнить его требуемую задачу. В случае приложений PHP, которые должны связаться с базами данных, необходимые API обычно представляются через расширения PHP.

API могут быть процедурными или объектно-ориентированными. С процедурным API Вы вызываете функции, чтобы выполнить задачи с объектно-ориентированным API, Вы инстанцируете классов и затем вызываете методы на получающихся объектах. Из двух последний обычно является привилегированным интерфейсом, поскольку это более современно и приводит лучше к организованному коду.

При записи приложений PHP, которые должны соединиться с сервером MySQL, есть несколько доступных опций API. Этот документ обсуждает то, что доступно и как выбрать лучшее решение для Вашего приложения.

Каков Соединитель?

В документации MySQL термин соединитель относится к части программного обеспечения, которое позволяет Вашему приложению соединяться с сервером базы данных MySQL. MySQL обеспечивает соединители для множества языков, включая PHP.

Если Ваше приложение PHP должно связаться с сервером базы данных, Вы должны будете записать код PHP, чтобы выполнить такие действия как соединение с сервером базы данных, запрашивая базу данных и другие связанные с базой данных функции. Программное обеспечение обязано обеспечивать API, который Ваше приложение PHP будет использовать, и также обрабатывать передачу между Вашим приложением и сервером базы данных, возможно пользуясь другими промежуточными библиотеками где необходимый. Это программное обеспечение известно в общем как соединитель, поскольку оно позволяет Вашему приложению соединяться с сервером базы данных.

Каков Драйвер?

Драйвер является частью программного обеспечения, разработанного, чтобы связаться с определенным типом сервера базы данных. Драйвер может также вызвать библиотеку, такую как MySQL Client Library или MySQL Native Driver. Эти библиотеки реализуют низкоуровневый протокол, используемый, чтобы связаться с сервером базы данных MySQL.

Посредством примера Объекты данных PHP (PDO) уровень абстракции базы данных может использовать один из нескольких специфичных для базы данных драйверов. Один из драйверов, которые это имеет в наличии, является драйвером MYSQL PDO, который позволяет этому взаимодействовать через интерфейс с сервером MySQL.

Иногда люди используют соединитель сроков и драйвер взаимозаменяемо, это может сбить с толку. В связанной с MySQL документации термин "драйвер" резервируется для программного обеспечения, которое обеспечивает специфичную для базы данных часть пакета соединителя.

Каково Расширение?

В документации PHP Вы столкнетесь с другим термином - расширение. Код PHP состоит из ядра с дополнительными расширениями базовой функциональности. Связанные с MySQL расширения PHP, такой как mysqli расширение, и mysql расширение, реализуются, используя платформу расширения PHP.

Расширение обычно представляет API PHP программисту, чтобы позволить его средствам использоваться программно. Однако, некоторые расширения, которые используют платформу расширения PHP, не представляют API PHP программисту.

Расширение драйвера MySQL PDO, например, не представляет API PHP программисту, но обеспечивает интерфейс для уровня PDO выше этого.

API сроков и расширение не должны быть взяты, чтобы означать ту же самую вещь, поскольку расширение, возможно, не обязательно представляет API программисту.

Каковы основные предложения API PHP для того, чтобы использовать MySQL?

Есть три основных опции API, рассматривая соединяющийся с сервером базы данных MySQL:

У каждого есть его собственные преимущества и недостатки. Следующее обсуждение стремится давать краткое введение в ключевые аспекты каждого API.

Каков MySQL Extension PHP?

Это - исходное расширение, разработанное, чтобы позволить Вам разрабатывать приложения PHP, которые взаимодействуют с базой данных MySQL. mysql расширение обеспечивает процедурный интерфейс и предназначается для использования только с версиями MySQL, более старыми чем 4.1.3. Это расширение может использоваться с версиями MySQL 4.1.3 или более новое, но не все последние функции сервера MySQL будет доступно.

Отметить

Если Вы используете версии MySQL 4.1.3, или позже строго рекомендуется, чтобы Вы использовали mysqli расширение вместо этого.

mysql исходный код расширения располагается в каталоге расширения PHP ext/mysql.

Для дополнительной информации о mysql расширение, см. Раздел 22.9.2, "API MySQL Original (Mysql)".

Каково mysqli Расширение PHP?

mysqli расширение, или как это иногда известно, MySQL улучшенное расширение, было разработано, чтобы использовать в своих интересах новые функции, найденные в системных версиях MySQL 4.1.3 и более новый. mysqli расширение включается с версиями PHP 5 и позже.

mysqli расширение обладает многими преимуществами, ключевыми улучшениями по mysql расширение быть:

Отметить

Если Вы используете версии MySQL 4.1.3, или позже строго рекомендуется, чтобы Вы использовали это расширение.

Так же как объектно-ориентированный интерфейс расширение также обеспечивает процедурный интерфейс.

mysqli расширение создается, используя платформу расширения PHP, ее исходный код располагается в каталоге ext/mysqli.

Для дополнительной информации о mysqli расширение, см. Раздел 22.9.3, "MySQL Improved Extension (Mysqli)".

Каков PDO?

Объекты данных PHP, или PDO, являются уровнем абстракции базы данных определенно для приложений PHP. PDO обеспечивает непротиворечивый API для Вашего приложения PHP независимо от типа сервера базы данных, с которым соединится Ваше приложение. В теории, если Вы используете API PDO, Вы могли бы переключить сервер базы данных, который Вы использовали, от говорят Фиребирда MySQL, и только должен сделать незначительные изменения к Вашему коду PHP.

Другие примеры уровней абстракции базы данных включают JDBC для приложений Java и DBI для Perl.

В то время как у PDO есть свои преимущества, такие как чистый, простой, переносимый API, его основной недостаток - то, что он не позволяет Вам использовать все расширенные функции, которые доступны в последних версиях сервера MySQL. Например, PDO не позволяет Вам использовать поддержку MySQL Многократных Операторов.

PDO реализуется, используя платформу расширения PHP, ее исходный код располагается в каталоге ext/pdo.

Для дополнительной информации о PDO см. http://www.php.net/book.pdo.

Каков драйвер MYSQL PDO?

Драйвер MYSQL PDO не является API как таковым, по крайней мере с точки зрения PHP программиста. Фактически драйвер MYSQL PDO находится в уровне ниже PDO непосредственно и обеспечивает специфичную для MySQL функциональность. Программист все еще вызывает API PDO, но PDO использует драйвер MYSQL PDO, чтобы выполнить передачу с сервером MySQL.

Драйвер MYSQL PDO является одним из нескольких доступных драйверов PDO. Другие доступные драйверы PDO включают тех для серверов баз данных Firebird и PostgreSQL.

Драйвер MYSQL PDO реализуется, используя платформу расширения PHP. Его исходный код располагается в каталоге ext/pdo_mysql. Это не представляет API PHP программисту.

Для дополнительной информации о драйвере MYSQL PDO см. Раздел 22.9.4, "MySQL Functions (PDO_MYSQL) (MySQL (PDO))".

Каков MySQL Native Driver PHP?

Чтобы связаться с сервером базы данных MySQL mysql расширение, mysqli и драйвер MYSQL PDO, каждый пользуется низкоуровневой библиотекой, которая реализует необходимый протокол. В прошлом единственная доступная библиотека была MySQL Client Library, иначе известным как libmysqlclient.

Однако, интерфейс, представленный libmysqlclient не был оптимизирован для передачи с приложениями PHP, как libmysqlclient был первоначально разработан с приложениями C в памяти. По этой причине MySQL Native Driver, mysqlnd, был разработан как альтернатива libmysqlclient для приложений PHP.

mysql расширение, mysqli расширение и драйвер MySQL PDO могут каждый быть индивидуально сконфигурированы, чтобы использовать также libmysqlclient или mysqlnd. Как mysqlnd специально разработано, чтобы быть использованным в системе PHP, у нее есть многочисленная память и улучшения скорости libmysqlclient. Вы строго поощряетесь использовать в своих интересах эти улучшения.

Отметить

MySQL Native Driver может только использоваться с версиями сервера MySQL 4.1.3 и позже.

MySQL Native Driver реализуется, используя платформу расширения PHP. Исходный код располагается в ext/mysqlnd. Это не представляет API PHP программисту.

Сравнение Функций

Следующая таблица сравнивает функциональность трех основных методов соединения с MySQL от PHP:

Таблица 22.41. Сравнение опций API MySQL для PHP

mysqli Расширение PHP PDO (Используя Драйвер MySQL PDO и MySQL Native Driver) MySQL Extension PHP
Версия PHP представляется 5.0 5.0 До 3.0
Включенный с PHP 5.x да да Да
Статус разработки MySQL Активная разработка Активная разработка с PHP 5.3 Обслуживание только
Рекомендуемый MySQL для новых проектов Да - предпочтительный вариант Да Нет
API поддерживает Наборы символов Да Да Нет
API поддерживает сторону сервера Готовые Операторы Да Да Нет
API поддерживает сторону клиента Готовые Операторы Нет Да Нет
API поддерживает Хранимые процедуры Да Да Нет
API поддерживает Многократные Операторы Да Больше всего Нет
Поддерживает весь MySQL 4.1 + функциональность Да Больше всего Нет