Обработка запросов

Главные вкладки

Аватар пользователя voodoo_dn voodoo_dn 8 октября 2013 в 21:42

Добрый вечер!

Подскажите, какими методами Вы пользуетесь для работы с БД?
Мне к примеру удобнее было бы использовать db_query, чем db_select и кучу свойств для него. Но на данном ресурсе: http://xandeadx.ru/blog/drupal/88, не рекомендуют использовать прямые запросы, лучше через объекты для работы с БД. Что скажете по этому поводу?
И где можно почитать о таких методах как fetchObject(), fetchAll() и т.п.?

Комментарии

Аватар пользователя serega111 serega111 9 октября 2013 в 7:14

"voodoo_dn" wrote:
Но на данном ресурсе: http://xandeadx.ru/blog/drupal/88, не рекомендуют использовать прямые запросы, лучше через объекты для работы с БД

И правильно рекомендуют. Разработчики ядра друпала не просто так придумали слой абстракции для работы с БД. Во-первых, использование db_select, db_insert, db_delete безопаснее. Во-вторых, это удобнее. Вам нужно только разобраться немного.
"voodoo_dn" wrote:
db_select и кучу свойств для него.

Это не свойства, это методы. У классов для работы с БД нет public свойств.
"voodoo_dn" wrote:
И где можно почитать о таких методах как fetchObject(), fetchAll() и т.п.?

Метод SelectQuery::execute() возвращает объект типа, являющегося реализацией DatabaseStatementInterface. Так что смотрите описание методов в этом интерфейсе.

Аватар пользователя voodoo_dn voodoo_dn 12 октября 2013 в 2:58

А есть какой-то метод, который показывает мне запрос, который я создал из методов для работы с БД? db_select(...)->fields(...)->condition(...)->метод который выведет мне SQL запрос как текст.

Аватар пользователя kv4 kv4 12 октября 2013 в 14:30

"voodoo_dn" wrote:
А есть какой-то метод, который показывает мне запрос, который я создал из методов для работы с БД

Самое простое:

<?php
$query 
db_select(...)->fields(...)->condition(...);
$query_str $query "";
?>