Расширение POD было добавлено в PHP5. Это расширение предоставляет встроенный класс PHP PDO для доступа к базе данных. Различные базы данных используют одно и то же имя метода для решения проблемы несогласованных подключений к базе данных.
Цель PDO —
предоставить легкий, понятный и удобный API.
Унифицируйте функции, общие для различных библиотек РСУБД, не исключая при этом более продвинутые функции.
Обеспечивает дополнительную степень абстракции/совместимости с помощью PHP-скриптов.
Особенности PDO:
Производительность. PDO с самого начала узнала об успехах и неудачах масштабирования существующих баз данных. Поскольку код PDO совершенно новый, у нас есть возможность перепроектировать производительность с нуля, чтобы воспользоваться преимуществами новейших функций PHP 5.
способность. PDO предназначен для обеспечения общей функциональности базы данных в качестве основы, обеспечивая при этом легкий доступ к уникальным функциям СУБД.
Простой. PDO создан для того, чтобы облегчить вам работу с базами данных. API не вторгается в ваш код и ясно дает понять, что делает каждый вызов функции.
Расширяемый во время выполнения. Расширение PDO является модульным, что позволяет загружать драйверы для серверной части базы данных во время выполнения без необходимости перекомпиляции или переустановки всей программы PHP. Например, расширение PDO_OCI заменит расширение PDO для реализации API базы данных Oracle. Существуют также драйверы для MySQL, PostgreSQL, ODBC и Firebird, и другие находятся в разработке. [разделитель]
Установить PDO
У меня есть расширение PDO для разработки под WINDOWS. Если вы хотите установить и настроить его под Linux, поищите в другом месте.
Требования к версии: php5.1 и более поздние версии уже включены в пакет; php5.0.x необходимо загрузить с pecl.php.net и поместить в вашу библиотеку расширений, которая представляет собой папку ext папки, в которой находится PHP. ;В руководстве указано, что версии до 5.0 не могут запускать расширения PDO. Конфигурация:
Измените файл конфигурации php.ini так, чтобы он поддерживал pdo (если вы не понимаете php.ini, сначала разберитесь с ним. Вам необходимо изменить файл php.ini, отображаемый при вызове функции phpinfo().) Измените расширение=. php_pdo Удалите точку с запятой перед .dll. Точка с запятой является символом комментария файла конфигурации php. Это расширение необходимо. Есть еще
;расширение=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_informix.dll
;расширение=php_pdo_mssql.dll
;расширение=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;расширение=php_pdo_oci8.dll
;расширение=php_pdo_odbc.dll
;расширение=php_pdo_pgsql.dll
;расширение=php_pdo_sqlite.dll
База данных, соответствующая каждому расширению:
Имя драйвера Поддерживаемые базы данных
PDO_DBLIB FreeTDS/Microsoft SQL Server/Sybase
PDO_FIREBIRD Firebird/Interbase 6
PDO_INFORMIX Динамический сервер IBM Informix
PDO_MYSQL MySQL 3.x/4.x
PDO_OCI Интерфейс вызова Oracle
PDO_ODBC ODBC v3 (IBM DB2, unixODBC и win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 и SQLite 2
Какую базу данных вы хотите использовать, просто удалите символ комментария «;» перед соответствующим расширением.
Использование PDO
Я предполагаю, что вы установили mysql. Если нет, сначала найдите способ его установки. У меня есть mysql5.0.22, и другие, кто использует MySQL 4.0.26, также могут его использовать.
Подключение к базе данных:
Мы используем следующий пример для анализа базы данных соединений PDO:
<?php
$dbms='mysql'; //Тип базы данных oracle использует ODI. Для разработчиков, использующих разные базы данных, если вы измените это, вам не нужно запоминать так много функций.
$host='localhost'; //Имя хоста базы данных
$dbName='test'; //Используемая база данных
$user='root'; //Имя пользователя подключения к базе данных
$pass='' //Соответствующий пароль
$dsn="$dbms:host=$host;dbname=$dbName";
пытаться {
$dbh = new PDO($dsn, $user, $pass //Инициализация объекта PDO означает создание объекта подключения к базе данных $dbh);
echo "Соединение успешно<br/>";
/*Вы также можете выполнить операцию поиска
foreach ($dbh->query('Выберите * из FOO') as $row) {
print_r($row); //Вы можете использовать echo($GLOBAL);
}
*/
$дбх = ноль;
} catch (PDOException $e) {
die ("Ошибка!: " . $e->getMessage() . "<br/>");
}
//По умолчанию это не длинное подключение. Если вам нужно длинное подключение к базе данных, нужно добавить в конце параметр: array(PDO::ATTR_PERSISTENT => true).
$db = новый PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
?>
Запрос к базе данных:
Мы уже выполнили запрос выше, и мы также можем использовать следующий запрос:
<?php
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); //Установить атрибуты
$rs = $db->query("Выберите * FROM foo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
print_r ($result_arr);
?>
Поскольку в приведенном выше примере используется метод setAttribute(), два параметра вводятся для принудительного перевода имени поля в верхний регистр. Ниже перечислены параметры PDO::setAttribute(): PDO::ATTR_CASE: заставляет имена столбцов быть в формате, как подробно описано ниже (второй параметр):
PDO::CASE_LOWER: заставляет имена столбцов быть в нижнем регистре.
PDO::CASE_NATURAL: имена столбцов имеют исходную форму.
PDO::CASE_UPPER: принудительно переводить имена столбцов в верхний регистр.
PDO::ATTR_ERRMODE: сообщение об ошибке.
PDO::ERRMODE_SILENT: не отображает информацию об ошибке, только код ошибки.
PDO::ERRMODE_WARNING: отображать предупреждения об ошибках.
PDO::ERRMODE_EXCEPTION: выдает исключение.
PDO::ATTR_ORACLE_NULLS (действителен не только для ORACLE, но и для других баз данных): ) указывает соответствующее значение в php для значения NULL, возвращаемого базой данных.
PDO::NULL_NATURAL: без изменений.
PDO::NULL_EMPTY_STRING: Пустая строка преобразуется в NULL.
PDO::NULL_TO_STRING: NULL преобразуется в пустую строку.
PDO::ATTR_STRINGIFY_FETCHES: конвертирует числовые значения в строки при выборке. Требуется bool.
PDO::ATTR_STATEMENT_CLASS: Установить предоставленный пользователем класс инструкции, полученный из PDOStatement. Невозможно использовать с постоянными экземплярами PDO. Требуется массив (строковое имя класса, массив (смешанный аргумент_конструктора)).
PDO::ATTR_AUTOCOMMIT (доступно в OCI, Firebird и MySQL): следует ли автоматически фиксировать каждый отдельный оператор.
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (доступно в MySQL): используйте буферизованные запросы.
$rs->setFetchMode(PDO::FETCH_ASSOC); в примере это PDOStatement::setFetchMode(), объявление возвращаемого типа.
Есть следующие:
PDO::FETCH_ASSOC -- форма ассоциативного массива
PDO::FETCH_NUM -- Форма числового индексного массива
PDO::FETCH_BOTH -- Оба доступны в виде массива, который используется по умолчанию.
PDO::FETCH_OBJ -- в виде объекта, аналогично предыдущему mysql_fetch_object()
Дополнительные объявления типа возвращаемого значения (PDOStatement::имя метода) см. в руководстве.
вставлять, обновлять, удалять данные,
$db->exec("Delete FROM `xxxx_menu`, где middle=43");
Кратко суммируем описанные выше операции:
Операциями запроса в основном являются PDO::query(), PDO::exec(), PDO::prepare().
PDO::query() в основном используется для операций, возвращающих записанные результаты, особенно для операций выбора.
PDO::exec() предназначен в основном для операций, которые не возвращают набор результатов, таких как вставка, обновление, удаление и другие операции. Возвращаемый результат — это количество столбцов, на которые влияет текущая операция.
PDO::prepare() — это в основном операция предварительной обработки. Вам нужно использовать $rs->execute() для выполнения оператора SQL в предварительной обработке. Этот метод может связывать параметры, и его невозможно объяснить просто в этой статье. .Все Вы можете обратиться к руководствам и другой документации.
Основными операциями получения набора результатов являются: PDOStatement::fetchColumn(), PDOStatement::fetch(), PDOStatement::fetchALL().
PDOStatement::fetchColumn() — это поле первой записи, указанной в результате выборки. По умолчанию используется первое поле.
PDOStatement::fetch() используется для получения записи.
PDOStatement::fetchAll() предназначен для объединения всех наборов записей в один. Для получения результатов вы можете установить тип требуемого набора результатов через PDOStatement::setFetchMode.
Есть также две сопутствующие операции: PDO::lastInsertId() и PDOStatement::rowCount(). PDO::lastInsertId() возвращает последнюю операцию вставки, а типом столбца первичного ключа является последний идентификатор автоинкремента.
PDOStatement::rowCount() в основном используется для набора результатов, на который влияют операции удаления, вставки и обновления PDO::query() и PDO::prepare(), и недопустим для метода PDO::exec(). и Выберите операцию.