Query Builder для Drupal7 [РЕШЕНО]

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

Аватар пользователя Shizuku Shizuku 7 июля 2013 в 11:58

В Drupal 7 новая довольно необычная декларация для SQL запросов. Может есть какой-нибудь конвертер или построитель из такого вида (привычный запрос):

SELECT n.*
FROM
{profile_value} n
WHERE  (n.uid = '1')

в такой (Drupal 7):

$query = db_select('profile_value', 'n')
  ->fields('n')
  ->condition('n.uid', 1);
  ->execute();

Комментарии

Аватар пользователя Shizuku Shizuku 7 июля 2013 в 14:54

"RxB" wrote:
coder_query

Неплохо, но не обрабатывает выборку из двух и более таблиц:

Запрос:
SELECT u.uid, u.name FROM users u, country c WHERE u.uid=c.uid LIMIT 10

Ответ:

$query = db_select('users', 'u');
$query->fields('u', array('uid', 'name'));
$query->condition('u.uid', 'c.uid');
$query->range(0, 10);
$result = $query->execute();
Аватар пользователя Shizuku Shizuku 7 июля 2013 в 15:04

"sg85" wrote:
db_query не логичнее?

Если вы про код, то да - логичнее. Вот пример в формате Drupal 7:

$title = db_query("SELECT value FROM {profile_value} WHERE uid = :uid", array(':uid' =>1))->fetchField();

Кстати coder_query не генерирует запросов c db_query, там вообще никаких опций в плане того, с помощью чего выводить Sad

Аватар пользователя Shizuku Shizuku 7 июля 2013 в 15:41

"drupby" wrote:
а join использовать не пробовал?

Нет. Или это не вопрос, а совет? Если с Join работает, то с динамическими запросами все ОК, остается только для статичных что-нибудь подходящее подобрать.

Аватар пользователя Shizuku Shizuku 7 июля 2013 в 15:41

"drupby" wrote:
а join использовать не пробовал?

Нет. Или это не вопрос, а совет? Если с Join работает, то с динамическими запросами все ОК, остается только для статичных что-нибудь подходящее подобрать.