Рубрики
Uncategorized

Настройка свойств и анализ методов работы PHP PDO

Автор оригинала: David Wong.

В этой статье описываются настройки атрибутов PHP PDO и методы работы. Поделитесь для вашей справки следующим образом:

Как настроить PDO для обработки данных

PDO::Атрибут setAttribute Свойства настройки

PDO::getAttribute Получение атрибутов

Синтаксис:

bool PDO::setAttribute ( int $attribute , mixed $value )

Установите свойства дескриптора базы данных. Некоторые общие атрибуты перечислены ниже; некоторые драйверы могут использовать дополнительные специфические атрибуты.

параметр

$атрибут

PDO:: ATTR_CASE: Заставляет указывать имя столбца в случае. Его стоимость в долларах может быть:

  • PDO:: CASE_LOWER: Принудительный список в нижнем регистре.
  • PDO:: CASE_NATURAL: Сохраните имя столбца, возвращаемое драйвером базы данных.
  • PDO:: CASE_UPPER: Принудительная капитализация столбца.

PDO:: ATTR_ERRMODE: Отчет об ошибке. Его стоимость в долларах может быть:

  • PDO:: ERRMODE_SILENT: Задаются только коды ошибок.
  • PDO:: ERRMODE_WARNING: Вызывает ошибку E_WARNING
  • PDO:: ERRMODE_EXCEPTION: Создает исключение исключений.

PDO:: ATTR_ORACLE_NULLS (доступно во всех драйверах, а не только в Oracle): Преобразование пустых и пустых строк. Его стоимость в долларах может быть:

PDO:: NULL_NATURAL: Нет преобразования.

PDO:: NULL_EMPTY_STRING: Преобразует пустые строки в NULL.

PDO:: NULL_TO_STRING: Преобразует значение NULL в пустую строку.

PDO:: ATTR_STRINGIFY_FETCHES: Преобразует значение в строку при извлечении. Требуется бул.

PDO:: КЛАСС ATTR_STATEMENT_CLASS: Задает класс оператора, предоставляемый пользователем, производный от PDOStatement. Не может использоваться для постоянных экземпляров PDO. Требуется массив (имя строкового класса, массив (параметр смешанного конструктора)).

PDO:: ATTR_TIMEOUT: Указывает количество секунд, в течение которых истекает время ожидания. Не все драйверы поддерживают эту опцию, что означает, что между драйверами и драйверами могут быть различия. Например, когда время ожидания SQLite достигает этого значения, он перестает получать блокировки для записи, но другие драйверы могут интерпретировать это значение как интервал времени ожидания подключения или чтения. Требуется тип int.

PDO:: ATTR_AUTOCOMMIT (доступно в OCI, Firebird и MySQL): Следует ли автоматически отправлять каждое отдельное заявление.

PDO:: ATTR_EMULATE_PREPARES включает или отключает моделирование операторов предварительной обработки. Некоторые драйверы не поддерживают или не ограничивают локальную предварительную обработку. Используйте этот параметр, чтобы заставить PDO всегда эмулировать операторы предварительной обработки (если это ПРАВДА) или попробуйте использовать локальные операторы предварительной обработки (если это ЛОЖЬ). Если драйверу не удастся успешно выполнить предварительную обработку текущего запроса, он всегда вернется к моделируемой инструкции предварительной обработки. Требуется тип Bool.

PDO:: MYSQL_ATTR_USE_BUFFERED_QUERY (доступно в MySQL): Используйте буферизованные запросы.

PDO:: ATTR_DEFAULT_FETCH_MODE: Установите режим извлечения по умолчанию. Описание шаблона можно найти в документе PDOStatement:: fetch ().

Общие атрибуты

PDO::ATTR_AUTOCOMMIT Установите, будут ли по умолчанию автоматически выполняться операторы SQL, подключенные в данный момент к серверу Mysql

// Automatic submission of attributes
var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT));  //1
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT)); //0

PDO::ATTR_CASE Когда PDO извлекает данные из результирующего набора, как обращаться с именами соответствующих полей

  • PDO:: CASE_LOWER: Показать все поля в нижнем регистре
  • PDO:: CASE_UPPER: Все поля заглавны
  • PDO:: CASE_NATURAL: Что бы это ни было
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_NATURAL);
// Or $pdo - > setAttribute (PDO:: ATTR_CASE, 1);
Var_dump (PDO:: CASE_UPPER); //1 converted to uppercase
Var_dump (PDO:: CASE_LOWER); //2 converted to lowercase
Var_dump (PDO:: CASE_NATURAL); //0 is how it is.
$sql = "select * from user ";
$stmt = $pdo->query($sql);
var_dump($stmt->fetch(PDO::FETCH_ASSOC));

PDO::ATTR_ERRMODE Режим ошибки, какой режим использовать при возникновении ошибки PDO

  • PDO:: ERRMODE_SILENT: Беззвучный режим, ошибка по умолчанию независимо от
  • PDO:: ERRMODE_WARNING: Режим предупреждения. Предупреждение будет сообщено, если что-то пойдет не так
  • PDO:: ERRMODE_EXCEPTION: Режим исключения, если произойдет ошибка, она будет обработана исключением (PDOException)
var_dump($pdo->getAttribute(PDO::ATTR_ERRMODE));
Var_dump (PDO:: ERRMODE_SILENT); //0 silent mode, default error regardless
Var_dump (PDO:: ERRMODE_WARNING); //1 warning mode, warning will be reported if something goes wrong
Var_dump (PDO:: ERRMODE_EXCEPTION); //2 exception mode, if an error occurs, the exception will be handled (PDOException)

PDO::ATTR_PERSISTENT Является ли текущее соединение с сервером Mysql длительным?

  • ВЕРНО Это длинное соединение (использование длинных соединений должно соответствовать: Apache (соединение: сохраняйте связь), Mysqld)
  • ЛОЖЬ По умолчанию, недлинное соединение

При каких обстоятельствах используется длительное соединение?

Интервал выполнения различных сценариев очень мал, и каждый сценарий работает с базой данных (Mysql: mysql_pconnect()).

Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Краткое описание навыков работы с базами данных PHP на основе pdo, Краткое описание навыков программирования баз данных php +Oracle, Полное описание навыков работы с базами данных PHP+MongoDB, Введение в объектно-ориентированное программирование PHP, Краткое описание использования строк PHP и Введение в управление базами данных php+mysql. И “Краткое описание общих навыков работы с базами данных на php”

Я надеюсь, что эта статья будет полезна для разработки PHP – программ для всех.