2010-01-04 1 views
1

Интересно, почему результат SQL-запроса в PHP PDO называется «statement». Я бы ожидал «набор записей». Мой английский довольно плохой, поскольку я не носитель языка.Существует ли концептуальная разница между так называемым «набором записей» и так называемым «утверждением»?

Итак: Я искал «запрос», чтобы «запросить базу данных, чтобы сделать/получить что-то». Иногда я использую «подготовленные заявления», чтобы спросить (синяя путаница!). Затем PDO возвращает мне объект класса PDOStatement (красное предупреждение о путанице!). Затем этот объект PDOStatement имеет метод fetch(), который, кажется, возвращает мне «набор записей». Хорошо ... так есть ли какая-то логическая разница между этой вещи PDOStatement и набором записей, который я получаю от fetch()?

В чем разница? Или объект PDOStatement фактически выполняет запрос БД, а затем возвращает набор записей? Или является PDOStatement запись комплект?

ответ

2

PDOStatement представляет собой как операторы, так и результирующие наборы; процитировать the manual:

Представляет подготовленное заявление, и, после того, как выполняется оператор, связанный набор результатов.

И PDO::query метод:

Выполняет оператор SQL, возвращая результирующий набор в качестве объекта PDOStatement

1

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

Смежные вопросы