PHP.mk документација

PDO::setAttribute

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

pdo.setattribute.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека pdo.setattribute.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
PDO::setAttribute

Референца за `pdo.setattribute.php` со подобрена типографија и навигација.

pdo.setattribute.php

PDO::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::setAttribute (PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

= NULL

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

Постави атрибут Ако завршниот идентификатор е вовлечен, може да се користат и табулатори, но табулаторите и празнините да се користи со други драјвери.

PDO::ATTR_CASE

Поставува атрибут на рачката на базата на податоци. Подолу се наведени некои достапни генерички атрибути; некои драјвери може да користат дополнителни атрибути специфични за драјверот. Имајте предвид дека атрибути специфични за драјверот

PDO::CASE_LOWER
Присилете ги имињата на колоните да бидат со мали букви.
PDO::CASE_NATURAL
Оставете ги имињата на колоните како што се вратени од драјверот на базата на податоци.
PDO::CASE_UPPER
Присилете ги имињата на колоните да бидат со големи букви.
PDO::ATTR_ERRMODE

Присили имињата на колоните на специфичен случај. Може да ги земе следниве вредности:

PDO::ERRMODE_SILENT
Режим на известување за грешки на PDO. Може да ги земе следниве вредности:
PDO::ERRMODE_WARNING
Поставува само кодови за грешки. E_WARNING diagnostics.
PDO::ERRMODE_EXCEPTION
). Ако повикот не успее, ќе врати PDOExceptions.
PDO::ATTR_ORACLE_NULLS

Забелешка: Крева

Овој атрибут е достапен со сите драјвери, не само со Oracle. null Одредува дали и како

PDO::NULL_NATURAL
и празните низи треба да се претворат. Може да ги земе следниве вредности:
PDO::NULL_EMPTY_STRING
Не се врши конверзија. null.
PDO::NULL_TO_STRING
null Празните низи се претвораат во
PDO::ATTR_STRINGIFY_FETCHES

се претвора во празна низа. nullКонтролира дали преземените вредности (освен bool: true за проверка на полињата со име на SSL сертификатот на DNS-over-HTTPS серверот во однос на името на хостот. Достапно од PHP 8.2.0 и cURL 7.76.0. false ) се претвораат во низи. Зема вредност од тип null вредностите остануваат непроменети освен ако PDO::ATTR_ORACLE_NULLS е поставен на PDO::NULL_TO_STRING.

PDO::ATTR_STATEMENT_CLASS

за да се оневозможи (стандардно). array(string classname, array(mixed constructor_args)).

Безбедност: стандардниот сет на знаци

Постави класа на изјава што ја снабдува корисникот, изведена од PDOStatement. Бара

PDO::ATTR_TIMEOUT

Не може да се користи со постојани PDO инстанци. int.

Забелешка:

Ја специфицира времетраењето на тајмаутот во секунди. Зема вредност од тип

PDO::ATTR_AUTOCOMMIT

Забелешка: Only available for the OCI, Firebird, and MySQL drivers.

Достапно само за драјверите OCI, Firebird и MySQL. bool: true за проверка на полињата со име на SSL сертификатот на DNS-over-HTTPS серверот во однос на името на хостот. Достапно од PHP 8.2.0 и cURL 7.76.0. false Дали да се изврши автоматско запишување на секоја поединечна изјава. Прифаќа вредност од тип true.

PDO::ATTR_EMULATE_PREPARES

Забелешка: Only available for the OCI, Firebird, and MySQL drivers.

за да се оневозможи. Стандардно, true Дали да се овозможи или оневозможи емулацијата на подготвени изјави. Некои драјвери не поддржуваат подготвени изјави нативно или имаат ограничена поддршка за нив. Ако е поставено на

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY

Забелешка: PDO секогаш ќе емулира подготвени изјави, инаку PDO ќе се обиде да користи нативни подготвени изјави. Во случај драјверот да не може успешно да ја подготви тековната прашање, PDO секогаш ќе се врати на емулирање на подготвената изјава.

Достапно само за драјверот MySQL. bool: true за проверка на полињата со име на SSL сертификатот на DNS-over-HTTPS серверот во однос на името на хостот. Достапно од PHP 8.2.0 и cURL 7.76.0. false Дали да се изврши автоматско запишување на секоја поединечна изјава. Прифаќа вредност од тип true.

PDO::ATTR_DEFAULT_FETCH_MODE

Дали да се користат баферирани прашања. Прифаќа вредност од тип Ги контролира содржините на вратениот низ како што е документирано во documentation.

Параметри

attribute

Поставете го стандардниот режим на преземање. Опис на режимите и како да се користат е достапен во

value

Атрибутот што треба да се измени. attributeВредноста што треба да се постави

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Види Исто така

Белешки од корисници 8 белешки

PDOStatement::getAttribute()
пред 18 години
Because no examples are provided, and to alleviate any confusion as a result, the setAttribute() method is invoked like so:

setAttribute(ATTRIBUTE, OPTION);

So, if I wanted to ensure that the column names returned from a query were returned in the case the database driver returned them (rather than having them returned in all upper case [as is the default on some of the PDO extensions]), I would do the following:

<?php
// Create a new database connection.
$dbConnection = new PDO($dsn, $user, $pass);

// Set the case in which to return column_names.
$dbConnection->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL);
?>

Hope this helps some of you who learn by example (as is the case with me).

.Colin
colinganderson [at] gmail [dot] com
пред 8 години
This is an update to a note I wrote earlier concerning how to set multiple attributes when you create you PDO connection string.

You can put all the attributes you want in an associative array and pass that array as the fourth parameter in your connection string. So it goes like this: 
<?php
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_CASE => PDO::CASE_NATURAL,
    PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING
];

// Now you create your connection string
try {
    // Then pass the options as the last parameter in the connection string
    $connection = new PDO("mysql:host=$host; dbname=$dbname", $user, $password, $options);

    // That's how you can set multiple attributes
} catch(PDOException $e) {
    die("Database connection failed: " . $e->getMessage());
}
?>
colinganderson [at] gmail [dot] com
пред 8 години
Well, I have not seen it mentioned anywhere and thought its worth mentioning. It might help someone. If you are wondering whether you can set multiple attributes then the answer is yes.

You can do it like this:
try {
    $connection = new PDO("mysql:host=$host; dbname=$dbname", $user, $password);
    // You can begin setting all the attributes you want.
    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $connection->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL);
    $connection->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING);

    // That's how you can set multiple attributes
}
catch(PDOException $e)
{
    die("Database connection failed: " . $e->getMessage());
}

I hope this helps somebody. :)
yeboahnanaosei at gmail dot com
19 години пред
It is worth noting that not all attributes may be settable via setAttribute().  For example, PDO::MYSQL_ATTR_MAX_BUFFER_SIZE is only settable in PDO::__construct().  You must pass PDO::MYSQL_ATTR_MAX_BUFFER_SIZE as part of the optional 4th parameter to the constructor.  This is detailed in http://bugs.php.net/bug.php?id=38015
gregory dot szorc at gmail dot com
пред 8 години
For PDO::ATTR_EMULATE_PREPARES, the manual states a boolean value is required. However, when getAttribute() is used to check this value, an integer (1 or 0) is returned rather than true or false.

This means that if you are checking a PDO object is configured as required then

<?php
        // Check emulate prepares is off
        if ($pdo->getAttribute(\PDO::ATTR_EMULATE_PREPARES) !== false) {
            /* do something */
        }
?>

will always 'do something', regardless.

Either

<?php
        // Check emulate prepares is off
        if ($pdo->getAttribute(\PDO::ATTR_EMULATE_PREPARES) != false) {
            /* do something */
        }
?>

or

<?php
        // Check emulate prepares is off
        if ($pdo->getAttribute(\PDO::ATTR_EMULATE_PREPARES) !== 0) {
            /* do something */
        }
?>

is needed instead.

Also worth noting that setAttribute() does, in fact, accept an integer value if you want to be consistent.
antoyo
пред 15 години
There is also a way to specifie the default fetch mode :
<?php
$connection = new PDO($connection_string);
$connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
?>
Анонимен
пред 4 години
Note that contrary to most PDO methods, setAttribute does not throw a PDOException when it returns false.
steve at websmithery dot co dot uk
пред 1 година
Note that in order for
\PDO::ATTR_TIMEOUT
to have any effect, you must set 

\PDO::ATTR_ERRMODE=>\PDO::ERRMODE_EXCEPTION.

If

\PDO::ATTR_ERRMODE=>\PDO::ERRMODE_WARNING

it doesn't appear to do anything.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.