главрыб, koc, костыль
а тогда зачем этот пост? то есть тебе нравится код костыля?
AlexB, ага. А теперь давай прикрутим динамические фильтры
Форум → Разработка → Базы данных → Срачь из темы про goDB
Страницы: ← Предыдущая страница • Следующая страница →
15 сентября 2010 г. 20:56, спустя 5 минут 32 секунды
а тогда зачем этот пост? то есть тебе нравится код костыля?
AlexB, ага. А теперь давай прикрутим динамические фильтры
15 сентября 2010 г. 21:20, спустя 20 минут 7 секунд
$qb->select('u')
->from('User', 'u')
->where('u.id = ?1')
->orderBy('u.name ASC');
goDB::query('
SELECT u FROM User AS u WHERE u.id = ?i ORDER BY u.name ASC ',
$data,
'assoc'
);
User.objects.filter(field=1).order_by('name')
User.objects.get(pk=1)
$qb->select(array('u')) // string 'u' is converted to array internally
->from('User', 'u')
->where($qb->expr()->orx(
$qb->expr()->eq('u.id', '?1'),
$qb->expr()->like('u.nickname', '?2')
))
->orderBy('u.surname', 'ASC'));
User.objects.filter(field=1, nickname__contains=2).order_by('surname')
15 сентября 2010 г. 21:24, спустя 3 минуты 14 секунд
15 сентября 2010 г. 21:31, спустя 7 минут 37 секунд
статика (goDB::query()) меня вообще не устраивает
16 сентября 2010 г. 1:14, спустя 3 часа 42 минуты 45 секунд
Почему тебе оно больше нравится$qb->select('u')
->from('User', 'u')
->where('u.id = ?1')
->orderBy('u.name ASC');
чем
goDB::query('
SELECT u FROM User AS u WHERE u.id = ?i ORDER BY u.name ASC ',
$data,
'assoc'
);
$qb->select('u')
->from('User', 'u')
->where('u.id = ?1')
->orderBy('u.name ASC');
if ($filter) {
$qb->andWhere($filter['field'], $filter['value']);
}
16 сентября 2010 г. 1:53, спустя 38 минут 54 секунды
а что надо проделать в другом случае?
16 сентября 2010 г. 1:58, спустя 5 минут
16 сентября 2010 г. 2:03, спустя 5 минут 30 секунд
16 сентября 2010 г. 2:16, спустя 12 минут 24 секунды
А что там за $params, покажи концовку, где запрос выполняется
$this->_getDb()->query($sql, $params)->fetchAll()
и напиши полный аналог с использование вашего булдера
$qb = new Qb(Qb::SELECT)
$qb->addField('track_id', 'track')
->addField('track_title', 'track')
->order('track_id', 'track', Qb::ORDER_DESC)
->limit($from, $count);
if (null !== $albomId) { //это условие можно даже проверить в нижлежайшем методе
$qb->addWhere('albom_id', $albomId, Qb::FORMAT_INT) // FORMAT_INT == '?i'
}
$this->_getDb()->query($qb->getSql(), $qb->getParams())->fetchAll()
16 сентября 2010 г. 2:36, спустя 19 минут 45 секунд
$pattern = 'SELECT track_id, track_title FROM trac ?q ORDER BY track_id DESC';
$where = '';
if (null !== $albomId) { //это условие можно даже проверить в нижлежайшем методе
$where = 'albom_id = ' . $albomId;
}
$db->query($pattern, array($where), 'assoc');
16 сентября 2010 г. 2:44, спустя 8 минут 43 секунды
d = Trac.objects.order_by('-track_id')
d.filter(album_id=albomid) #это условие можно даже проверить в нижлежайшем методе
16 сентября 2010 г. 2:46, спустя 1 минуту 18 секунд
Насчёт ORM vs Builder vs native-SQL: кто из них лучше тема для обширного и бессмысленного холивара.
Каждый выбирает, что ему нравится
16 сентября 2010 г. 2:51, спустя 5 минут 46 секунд
adw0rd, не убедил )) суть в собирании запроса по кускам, добовляются в билдер не в той последовательности, в какой будут сложены в итоге. Это даёт гибкости динамической сборки.
зы: твой пример нифига не читабелен ИМХО и ты опустил как бы кое какие важные вещи ))
16 сентября 2010 г. 3:03, спустя 11 минут 27 секунд
->addField('track_id', 'track')
->addField('track_title', 'track')
$qb->addWhere('albom_id', $albomId, Qb::FORMAT_INT)
$qb->addWhere('albom_id', intval($albomId))
->order('track_id', 'track', Qb::ORDER_DESC)
->order('-track_id', 'track')
$this->_getDb()->query($qb->getSql(), $qb->getParams())->fetchAll()
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!