Progress28.ru

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php fetch object

PHP mysqli fetch_object() Function

Example — Object Oriented style

Return the current row of a result set, then print each field’s value:

connect_errno) <
echo «Failed to connect to MySQL: » . $mysqli -> connect_error;
exit();
>

$sql = «SELECT Lastname, Age FROM Persons ORDER BY Lastname»;

if ($result = $mysqli -> query($sql)) <
while ($obj = $result -> fetch_object()) <
printf(«%s (%s)n», $obj->Lastname, $obj->Age);
>
$result -> free_result();
>

Look at example of procedural style at the bottom.

Definition and Usage

The fetch_object() / mysqli_fetch_object() function returns the current row of a result-set, as an object.

Note: Fieldnames returned from this function are case-sensitive.

Syntax

Object oriented style:

Procedural style:

Parameter Values

ParameterDescription
resultRequired. Specifies a result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result()
classnameOptional. Specifies the name of the class to instantiate, set the properties of, and return
paramsOptional. Specifies an array of parameters to pass to the constructor for classname objects

Technical Details

Return Value:Returns an object with string properties for the fetched row. NULL if there are no more rows in the result set
PHP Version:5+
Changelog:The ability to return as a different object was added in PHP 5.0.0

Example — Procedural style

Return the current row of a result set, then print each field’s value:

Lastname, $obj->Age);
>
mysqli_free_result($result);
>

COLOR PICKER

HOW TO

SHARE

CERTIFICATES

Report Error

If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:

Thank You For Helping Us!

Your message has been sent to W3Schools.

Top Tutorials

Top References

Top Examples

Web Certificates

W3Schools is optimized for learning, testing, and training. Examples might be simplified to improve reading and basic understanding. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using this site, you agree to have read and accepted our terms of use, cookie and privacy policy. Copyright 1999-2020 by Refsnes Data. All Rights Reserved.
Powered by W3.CSS.

mysqli_result::fetch_object

mysqli_result::fetch_object — mysqli_fetch_object — Возвращает текущую строку результирующего набора в виде объекта

Описание

mysqli_fetch_object() вернет текущую строку результирующей таблицы в виде объекта, атрибуты которого будут соответствовать именам столбцов таблицы.

Важно заметить, что mysqli_fetch_object() задает значения свойств объекта до вызова его конструктора.

Список параметров

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query() , mysqli_store_result() или mysqli_use_result() .

Имя класса, объект которого требуется инстанцировать, задать значения его свойств и вернуть. Если параметр не задан, будет возвращен объект stdClass.

Необязательный массив ( array ) параметров, которые будут переданы конструктору класса class_name .

Возвращаемые значения

Возвращает объект со строковыми свойствами, соответствующими значениям в выбранной строке или NULL , если в результирующем наборе нет доступных строк.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Примеры

Пример #1 Объектно-ориентированный стиль

= new mysqli ( «localhost» , «my_user» , «my_password» , «world» );

/* проверка подключения */
if ( mysqli_connect_errno ()) <
printf ( «Не удалось подключиться: %sn» , mysqli_connect_error ());
exit();
>

$query = «SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5» ;

if ( $result = $mysqli -> query ( $query )) <

/* выборка данных и помещение их в объекты */
while ( $obj = $result -> fetch_object ()) <
printf ( «%s (%s)n» , $obj -> Name , $obj -> CountryCode );
>

/* очищаем результирующий набор */
$result -> close ();
>

/* закрываем подключение */
$mysqli -> close ();
?>

Пример #2 Процедурный стиль

= mysqli_connect ( «localhost» , «my_user» , «my_password» , «world» );

/* проверка подключения */
if ( mysqli_connect_errno ()) <
printf ( «Не удалось подключиться: %sn» , mysqli_connect_error ());
exit();
>

$query = «SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5» ;

if ( $result = mysqli_query ( $link , $query )) <

/* выборка данных и помещение их в объекты */
while ( $obj = mysqli_fetch_object ( $result )) <
printf ( «%s (%s)n» , $obj -> Name , $obj -> CountryCode );
>

/* очищаем результирующий набор */
mysqli_free_result ( $result );
>

/* закрываем подключение */
mysqli_close ( $link );
?>

Результат выполнения данных примеров:

Смотрите также

  • mysqli_fetch_array() — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() — Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_row() — Получение строки результирующей таблицы в виде массива
  • mysqli_query() — Выполняет запрос к базе данных
  • mysqli_data_seek() — Перемещает указатель результата на выбранную строку

User Contributed Notes 9 notes

Since 5.6.21 and PHP 7.0.6

mysqli_fetch_object() sets the properties of the object AFTER calling the object constructor. Not BEFORE as was in previous versions.

So behaviour has changed. Seems a bug but not sure if was done intentionally.

Please mind the difference between objects and arrays in PHP>=5: arrays are by value while objects are by reference.

$a = mysqli_fetch_array($res);
$a1 = $a;
$a1[‘value’] = 10;

echo $o->value; // 10
echo $a[‘value’]; // (original value from db)
?>

Should same behaviour be intended, the object needs to be cloned:

As indicated in the user comments of the mysql_fetch_object, it is important to realize that class fields get values assigned to them BEFORE the constructor is called.
For example;
class Employee
<
private $id ;

public function __construct ( $id = 0 )
<
$this -> id = $id ;
>
>

// some code for creating a database connection. i.e. mysqli object
.
$result = $con -> query ( «select id, name from employees» );
$anEmployee = $result -> fetch_object ( «Employee» );
?>
will result in the ID being 0 because it is overridden by the constructor. Therefore, it is useful to check if the class field is already set.
I.e.
class Employee
<
private $id ;

public function __construct ( $id = 0 )
<
if (! $this -> id )
<
$this -> id = $id
>
>
>
?>
Also note that the fields which will be assigned by fetch_object are case sensitive. If your table has the field «ID», it will result in the class field $ID being set. A simple work-around is to use aliases. I.e. «SELECT *, ID as id FROM myTable»
I hope this helps some people.

Читать еще:  Выбор предохранителей для защиты асинхронных электродвигателей

Note that if you supply a class that has a __set() magic method defined in it, that method will be called for any properties that are not defined in your class. For example:

class SomeClass <
private $id ;
public $partner_name ;
public function __set ( $name , $value ) <
echo «__set was called! Name = $name n» ;
$this -> $name = $value ;
>
>

$db = new mysqli ( ‘localhost’ , ‘Username’ , ‘Password’ , ‘DbName’ );
$result = $db -> query ( ‘SELECT id, partner_name, partner_type FROM submissions’ );
$object = $result -> fetch_object ( ‘SomeClass’ );

?>

Produces the following output:

__set was called! Name = partner_type

I don’t know why no one talk about this.
fetch_object is very powerful since you can instantiate an Object which has the methods you wanna have.

You can try like this..

class PowerfulVO extends AbstractWhatEver <

public $field1 ;
private $field2 ; // note : private is ok

public function method () <
// method in this class
>
>

$sql = «SELECT * FROM table . »
$mysqli = new mysqli (. );
$result = $mysqli -> query ( $sql );
$vo = $result -> fetch_object ( ‘PowerfulVO’ );
?>

Note : if the field is not defined in the class, fetch_object will add this field for you as public.

The method is very powerful, especially if you want to use a VO design pattern or class mapping feature with Flex Remoting Object( Of course, you need to have ZendAMF or AMFPHP ..framework)

Hope this help and open new possibilities for you

PHP PDO: Режимы получения данных, константы PDO::FETCH_*

В прошлой заметке мы познакомились с основами PDO и простейшими запросами выборки данных из базы данных. В этой заметке мы научимся управлять режимами получения данных.

Все предопределенные константы здесь

PDO::FETCH_BOTH

Аналог mysql_fetch_array() . Все данные возвращаются в дублированном виде, с текстовыми индексами и цифровыми. Этот режим включен в PDO по умолчанию.

PDO::FETCH_NUM

Аналог mysql_fetch_row() . Только цифровые индексы:

PDO::FETCH_ASSOC

Аналог mysql_fetch_assoc() Только текстовые индексы.

PDO::FETCH_OBJ

Аналог mysql_fetch_object() без указания имени класса, возвращает экземпляр stdClass

PDO::FETCH_LAZY

В этом режиме не тратится лишняя память, и к тому же к колонкам можно обращаться любым из трех способов — через индекс, имя, или свойство (через -> ). Недостатком же данного режима является то, что он не работает с fetchAll()

PDO::FETCH_COLUMN

Когда необходимо получить только одну колонку из результата. Соответственно, имеет смысл только при использовании с fetchAll() — и в этом случае возвращает сразу одномерный массив.

PDO::FETCH_KEY_PAIR

Малоизвестный, но очень полезный режим, когда из двух запрошенных полей содержимое первого становится ключом, а второго — значением одномерного массива.

PDO::FETCH_UNIQUE

Похож на предыдущий, но в качестве значения возвращает всю оставшуюся строку. C fetch() этот режим не возвращает ничего вразумительного, а вот с fetchAll() как раз получается такой, весьма востребованный режим. Главное, чтобы первой колонкой в запросе выбиралось уникальное поле — тогда оно будет использовано в качестве индекса возвращаемого массива, вместо обычной нумерации

PDO::FETCH_GROUP

Группирует значения по первой колонке. К примеру, нижеследующий код разобьёт пользователей на мальчиков и девочек, и положит их в разные массивы:

То есть, этот режим идеально подходит для классической задачи вывести события сгруппированные по дням (или вывести товары, сгруппированные по категориям). Также может комбинироваться с PDO::FETCH_COLUMN :

PDO::FETCH_CLASS

Создаёт объект указанного класса, заполняя его свойства данными из БД. Однако здесь, увы, начинаются неудобства и непоследовательность в работе вызывающих функций. Если для fetchAll() можно написать красиво и компактно

то для fetch() приходится писать такую колбасу:

Из-за того что fetch() не позволяет передать имя класса, мы вынуждены пользоваться setFetchMode() . А учитывая, что эта функция возвращает булево значение, а не ссылку на объект, мы не можем использовать method chaining. Также следует помнить, что в этом режиме PDO будет вызывать магический метод __set() если свойство, совпадающее с именем поля, не найдено в объекте. Для PHP это означает, что если в объекте отсутствует такой метод, то все колонки строки, полученной из БД, будут назначены переменным класса. Если же мы хотим присвоить значения только существующим переменным, то этот момент надо контролировать с помощью метода __set() . Например

в то время как у класса с пустым __set() будут заполнены только существующие свойства:

Можно, кстати, заметить, что PDO присваивает значения и приватным свойствам, что несколько неожиданно, но очень удобно.

PDO::FETCH_CLASSTYPE

Очень интересная константа. Представляет собой не самостоятельный режим получения данных, а флаг-модификатор, изменяющий поведение других режимов. При её использовании PDO будет брать имя класса из первой колонки полученных из БД данных. То есть, с её помощью код для fetch() можно сделать короче

PDO::FETCH_PROPS_LATE

Ещё один флаг-модификатор. По умолчанию PDO присваивает значения свойствам класса до вызова конструктора. При помощи же данной константы это поведение можно изменить — сначала будет вызываться конструктор:

PDO::FETCH_INTO

В отличие от PDO::FETCH_CLASS не создаёт новый объект, а обновляет существующий. Соответственно, в качестве параметра передается переменная с объектом. По очевидным причинам имеет смысл только с fetch()

Как видно, fetch() возвращает тот же объект, что представляется мне несколько избыточным. Также, с сожалением приходится констатировать, что в отличие от PDO::FETCH_CLASS , этот режим не присваивает значения приватным свойствам.

PDO::FETCH_SERIALIZE

Ещё один флаг для PDO::FETCH_CLASS . Должен возвращать объект, который хранился в БД в сериализованном виде. Конструктор не вызывается. На данный момент не работает. Должно быть что-то вроде такого

PDO::FETCH_FUNC

Для любителей замыканий. Работает только внутри fetchAll() . В параметры функции PDO передаёт переменные для каждого полученного поля, что может быть неудобным — нет доступа к именам полей, а только к значениям. К примеру, эмуляция работы PDO::FETCH_COLUMN :

Читать еще:  Основы защиты государственной тайны

PDO::FETCH_NAMED

Почти то же самое, что PDO::FETCH_ASSOC , но с одним отличием. Много раз я встречал на форумах вопросы о том, как получить значения полей с одинаковыми именами из разных таблиц при джойне. Всегда ответ был один — писать алиасы руками в запросе или использовать цифровые индексы. А вот и ответ от PDO: получение данных в этом режиме аналогично PDO::FETCH_ASSOC , но если встречаются поля с одинаковыми именами, то все значения по очереди записываются во вложенный массив. Допустим, у нас есть таблицы users и companies, причем в обеих есть поле name. Если получать данные традиционным путём, то одно из полей будет съедено:

Если же указать это флаг, то все значения колонок с совпадающими именами будут собраны во вложенном массиве в порядке поступления:

PDO::FETCH_BOUND

Очень интересный режим, сильно отличающийся от других. В отличие от всех остальных, он не возвращает не массив или объект. Вместо этого он присваивает значения переменным, предварительно указанным с помощью bindColumn() — режим, аналогичный тому, что используется в mysqli при получении данных из подготовленного запроса. Пример есть в документации

Материал подготовлен на основе официальной статьи .

Описание констант PDO::FETCH_*.

Как уже говорилось в статье Как работать с PDO?, константы, задающие режим получения данных (наряду с передачей параметров напрямую в execute() ) делают PDO по-настоящему удобной библиотекой для работы с БД, а не просто еще одним (пусть и универсальным) API для доступа к базе данных. С помощью этих констант можно значительно сократить код многих рутинных операций, поскольку они позволяют получить данные сразу в нужном формате.

Хотя интересующие нас константы частично описываются на страницах документации, посвященных методам fetch() и fetchAll() , полный список приведен только на странице с общим списком констант PDO, что не кажется мне очень удобным, и может являться той причиной, по которой некоторые особенно интересные режимы получения данных оказались вне поля зрения большинства разработчиков. Я решил выделить интересующие нас константы из общего списка и разбить для удобства на несколько категорий, поскольку их количество впечатляет — ни много ни мало, а целых 25 штук!

Классика

Для начала перечислим константы, которые дублируют стандартное поведение теплых ламповых функций mysql. Все примеры даются с использованием функции var_export() .

PDO::FETCH_BOTH

аналог mysql_fetch_array() . Все данные возвращаются в дублированном виде — и с текстовыми индексами, и с цифровыми. Этот режим включен в PDO по умолчанию.

PDO::FETCH_NUM

снова старый знакомый, аналог mysql_fetch_row() . Только цифровые индексы:

PDO::FETCH_ASSOC

то же самое, аналог mysql_fetch_assoc() , только текстовые индексы.

PDO::FETCH_OBJ

аналог mysql_fetch_object() без указания имени класса, возвращает экземпляр stdClass

PDO::FETCH_LAZY

Эта константа настолько примечательна и ни на что не похожа, что я решил вынести её в отдельный раздел. Начнем с того, что возвращаемая с её помощью переменная является экземпляром особенного класса PDORow , причем этот объект наделён целым ворохом уникальных свойств:

  • Во-первых, эта переменная не содержит сами запрошенные данные, а отдаёт их по запросу (на что намекает название)
  • Во-вторых, помимо запрошенных данных, в объекте присутствует загадочная переменная, которая называется queryString и содержит SQL запрос(!) (что намекает о родственности этого класса PDOStatement):

Для пытливых — да, перезаписать queryString можно 🙂

  • В-третьих, эту переменную невозможно сохранить в сессии (или, другими словами — сериализовать)
  • В-четвертых, получать из неё данные можно как угодно, любым из трёх способов: через числовой индекс, ассоциативный, или обращаясь к свойству класса через ->
  • В-пятых, обращение к несуществующим свойствам не вызывает нотис Undefined property / index. Молча возвращается NULL .
  • В-шестых, эта переменная меняет своё состояние от последующих вызовов fetch() с другими константами. Плюс ко всему, эта константа не работает с fetchAll() , а только с fetch() .
  • Проведём пару экспериментов. Попробуем запросить относительно большой объём данных, и посмотрим, как меняется потребление памяти, и заодно проверим ещё пару утверждений:

    Как видно, этот код опрашивает нашу таблицу users, добавляя к строке мегабайтное поле. После этого мы получаем строку через эту константу — объём памяти не поменялся. Только после того, как мы присваиваем значение мегабайтного поля переменной — он увеличивается. Для контроля выводим имя из таблицы users. Затем получаем ещё одну строку, уже в одном из стандартных режимов. Видим, что объем памяти тут же подскакивает, в отличие от предыдущего случая. Экономия в первом случае налицо! Так же мы видим отсутствие нотиса и смену состояния $lazy после вызова fetch() .

    Из всей этой информации можно сделать вывод, что объект PDORow — это канал прямой связи с астралом resultSet-ом драйвера БД. И, не имея собственного состояния, попросту читает данные с текущей позиции курсора. Учитывая всё вышесказанное можно только удивляться, почему эта константа до сих пор так редко используется.

    Самое полезное

    Здесь я решил собрать самые полезные, на мой взгляд, режимы, которые возвращают данные в наиболее востребованных в повседневной разработке форматах.

    Примечание: здесь и далее все примеры даются при включенном по умолчанию формате вывода PDO::FETCH_ASSOC

    PDO::FETCH_COLUMN

    Вытаскивает только одну колонку из результата. Соответственно, имеет смысл только при использовании с fetchAll() — и в этом случае возвращает сразу одномерный массив. Очень удобно.

    Дополнительным параметром можно указать номер выбираемой колонки. Если этот флаг используется сам по себе, то номер указывать нет смысла (надо сразу в запросе выбирать только одну колонку, которая и будет выведена), но если в комбинации с другими, то номер может оказаться полезным.

    PDO::FETCH_KEY_PAIR

    Малоизвестный, но довольно полезный режим, когда из двух запрошенных полей содержимое первого становится ключом, а второго — значением одномерного массива.

    Требователен к количеству колонок в запросе — их должно быть строго две

    Читать еще:  Count sql php

    PDO::FETCH_UNIQUE

    похож на предыдущий, но в качестве значения возвращает всю оставшуюся строку. C fetch() этот режим не возвращает ничего вразумительного, а вот с fetchAll() как раз получается такой, весьма востребованный режим. Главное, чтобы первой колонкой в запросе выбиралось уникальное поле — тогда оно будет использовано в качестве индекса возвращаемого массива, вместо обычной нумерации

    PDO::FETCH_GROUP

    Группирует значения по первой колонке. К примеру, нижеследующий код разобьёт пользователей на мальчиков и девочек, и положит их в разные массивы:

    То есть, этот режим идеально подходит для классической задачи «вывести события сгруппированные по дням» (или «вывести товары, сгруппированные по категориям»). Также может комбинироваться с PDO::FETCH_COLUMN :

    Объектное ориентирование

    Разумеется, простым stdObject возможности (я бы даже сказал — аппетиты) PDO по работе с объектами не исчерпываются. Дальше идет целая серия режимов для всевозможной манипуляции ими.

    PDO::FETCH_CLASS

    Создаёт объект указанного класса, заполняя его свойства данными из БД. Однако здесь, увы, начинаются неудобства и непоследовательность в работе вызывающих функций. Если для fetchAll() можно написать красиво и компактно

    то для fetch() приходится писать такую колбасу:

    Из-за того что fetch() не позволяет передать имя класса, мы вынуждены пользоваться setFetchMode() . А учитывая, что эта функция возвращает булево значение, а не ссылку на объект, мы не можем использовать method chaining. Пичаль. Также следует помнить, что в этом режиме PDO будет вызывать магический метод __set() если свойство, совпадающее с именем поля, не найдено в объекте. Для PHP это означает, что если в объекте отсутствует такой метод, то все колонки строки, полученной из БД, будут назначены переменным класса. Если же мы хотим присвоить значения только существующим переменным, то этот момент надо контролировать с помощью метода __set() . Например

    в то время как у класса с пустым __set() будут заполнены только существующие свойства:

    Можно, кстати, заметить, что PDO присваивает значения и приватным свойствам, что несколько неожиданно, но очень удобно.

    PDO::FETCH_CLASSTYPE

    Очень интересная константа. Представляет собой не самостоятельный режим получения данных, а флаг-модификатор, изменяющий поведение других режимов. При её использовании PDO будет брать имя класса из первой колонки полученных из БД данных. То есть, с её помощью код для fetch() можно сделать короче

    PDO::FETCH_PROPS_LATE

    Ещё один флаг-модификатор. По умолчанию PDO присваивает значения свойствам класса до вызова конструктора. При помощи же данной константы это поведение можно изменить — сначала будет вызываться конструктор:

    PDO::FETCH_INTO

    в отличие от PDO::FETCH_CLASS не создаёт новый объект, а обновляет существующий. Соответственно, в качестве параметра передается переменная с объектом. По очевидным причинам имеет смысл только с fetch()

    Как видно, fetch() возвращает тот же объект, что представляется мне несколько избыточным. Также, с сожалением приходится констатировать, что в отличие от PDO::FETCH_CLASS , этот режим не присваивает значения приватным свойствам.

    PDO::FETCH_SERIALIZE

    ещё один флаг для PDO::FETCH_CLASS . Должен возвращать объект, который хранился в БД в сериализованном виде. Конструктор не вызывается. На данный момент не работает. Должно быть что-то вроде такого

    Этот режим попил у меня крови изрядно. Описание у него самое невинное — «то же самое, что и PDO::FETCH_INTO, но объект передается в сериализованном массиве». А куда передавать-то? В параметры что ли? пробовал и так, и сяк — ничего не получалось. Только когда нашел юнит-тест, посвященный этому режиму, стало понятно, что объект должен придти из БД. Но всё равно не получается — пишет, «cannot unserialize class».

    В общем, предполагается, что этот режим должен создавать объект из сериализованного представления, хранящегося в БД. Но это не работает, поскольку при использовании этого метода из базы возвращается не то, что туда клали! Вместо исходного объекта возвращается внонимный класс, который содержит два свойства — одно с именем объекта, и второе с исходным объектом. В общем, мы с zerkms-ом покопались, и в итоге он накатал баг-репорт, https://bugs.php.net/bug.php? >

    Разное

    PDO::FETCH_FUNC

    для любителей замыканий. Работает только внутри fetchAll() . В параметры функции PDO передаёт переменные для каждого полученного поля, что может быть неудобным — нет доступа к именам полей, а только к значениям. К примеру, эмуляция работы PDO::FETCH_COLUMN:

    PDO::FETCH_NAMED

    почти то же самое, что PDO::FETCH_ASSOC , но с одним отличием. Много раз я встречал на форумах вопросы о том, как получить значения полей с одинаковыми именами из разных таблиц при джойне. Всегда ответ был один — писать алиасы руками в запросе или использовать цифровые индексы. А вот и ответ от PDO: получение данных в этом режиме аналогично PDO::FETCH_ASSOC, но если встречаются поля с одинаковыми именами, то все значения по очереди записываются во вложенный массив. Допустим, у нас есть таблицы users и companies, причем в обеих есть поле name. Если получать данные традиционным путём, то одно из полей будет съедено:

    Если же указать это флаг, то все значения колонок с совпадающими именами будут собраны во вложенном массиве в порядке поступления:

    Уж не знаю, насколько это востребованная фича, и насколько легче разбирать массив, нежели прописать алиасы в запросе.

    PDO::FETCH_BOUND

    очень интересный режим, сильно отличающийся от других. В отличие от всех остальных, он не возвращает не массив или объект. Вместо этого он присваивает значения переменным, предварительно указанным с помощью bindColumn() — режим, аналогичный тому, что используется в mysqli при получении данных из подготовленного запроса. Пример есть в документации

    Untested

    За неимением подходящей БД я не смог проверить работу еще нескольких констант. Но, на мой взгляд, их поведение достаточно очевидно и не нуждается в особом описании.

    • PDO::ATTR_FETCH_CATALOG_NAMES — возвращает имена колонок в формате «каталог.имя_колонки». Поддерживается не всеми драйверами.
    • PDO::ATTR_FETCH_TABLE_NAMES — возвращает имена колонок в формате «имятаблицы.имяколонки». Поддерживается не всеми драйверами.
    • PDO::FETCH_ORI_* — 6 функций по управлению курсором при получении данных из БД. Пример есть в документации
    Ссылка на основную публикацию
    Adblock
    detector