Spec-Zone .ru
спецификации, руководства, описания, API
|
Copyright 1997-2012 PHP Documentation Group.
PHP предлагает три различных API, чтобы соединиться с MySQL. Ниже мы показываем API, обеспеченные mysql, mysqli, и расширениями PDO. Каждый фрагмент кода создает соединение с сервером MySQL, работающим "на example.com" использовании имени пользователя "пользователь" и пароль "пароль". И запрос выполняется, чтобы приветствовать пользователя.
Пример 22.13. Сравнение трех API MySQL
<?php// mysqli$mysqli = new mysqli("example.com", "user", "password", "database");$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");$row = $result->fetch_assoc();echo htmlentities($row['_message']);// PDO$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");$row = $statement->fetch(PDO::FETCH_ASSOC);echo htmlentities($row['_message']);// mysql$c = mysql_connect("example.com", "user", "password");mysql_select_db("database");$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");$row = mysql_fetch_assoc($result);echo htmlentities($row['_message']);?>
Рекомендуемый API
Рекомендуется использовать или mysqli или расширения PDO_MySQL. Не рекомендуется использовать старое mysql расширение для новой разработки, поскольку это было осуждено с PHP 5.5.0 и будет удалено в будущем. Подробная матрица сравнения функции обеспечивается ниже. Общая производительность всех трех расширений, как полагают, о том же самом. Хотя производительность расширения вносит только часть полного времени выполнения веб-запроса PHP. Часто, воздействие столь же низко как 0.1 %.
Сравнение функции
ext/mysqli | PDO_MySQL | ext/mysql | |
---|---|---|---|
Версия PHP представляется | 5.0 | 5.1 | 2.0 |
Включенный с PHP 5.x | Да | Да | Да |
Статус разработки | Активный | Активный | Обслуживание только |
Жизненный цикл | Активный | Активный | Осуждаемый |
Рекомендуемый для новых проектов | Да | Да | Нет |
Интерфейс ООП | Да | Да | Нет |
Процедурный Интерфейс | Да | Нет | Да |
API поддерживает неблокирование, асинхронные запросы с mysqlnd | Да | Нет | Нет |
Персистентные Соединения | Да | Да | Да |
API поддерживает Наборы символов | Да | Да | Да |
API поддерживает сторону сервера Готовые Операторы | Да | Да | Нет |
API поддерживает сторону клиента Готовые Операторы | Нет | Да | Нет |
API поддерживает Хранимые процедуры | Да | Да | Нет |
API поддерживает Многократные Операторы | Да | Больше всего | Нет |
API поддерживает Транзакции | Да | Да | Нет |
Транзакциями можно управлять с SQL | Да | Да | Да |
Поддерживает весь MySQL 5.1 + функциональность | Да | Больше всего | Нет |