не пойму как мне составить элементарный на языке друпал. запрос такой
SELECT count(*) FROM affiliate_users_ids WHERE UCASE(text_id)=UCASE($Var)
вместо $Var надо подставить выражение: $textid_primay_part . $textid_cnt . $textid_secondary_part
.вот пытаюсь вот так :
<?php
db_select('affiliate_users_ids')
->countQuery()
->where('UCASE(text_id)=UCASE(:txt)', array(':txt' => $textid_primay_part . $textid_cnt . $textid_secondary_part))
->execute()
->fetchField()
?>
во что пишет :
PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'text_id' in 'where clause': SELECT COUNT(*) AS expression FROM (SELECT 1 AS expression FROM {affiliate_users_ids} affiliate_users_ids) subquery WHERE (UCASE(text_id)=UCASE(:txt)) ; Array ( [:txt] => OL1012613 ) в функции gaa_createUserTextID() (строка 14 в файле /usr/www/users/webmisq/drupal/sites/all/modules/gaa_user_sinhronaze/gaa_user_sinhronaze.module).
то бишь не находит text_id в табличке affiliate_users_ids. но она то там есть.
Комментарии
нда, только так вышло :
<?php
$count=(db_select('affiliate_users_ids','a')
->fields('a', array('text_id'))
->where('UCASE(a.text_id)=UCASE(:txt)', array(':txt' => $textid_primay_part . $textid_cnt . $textid_secondary_part))
->execute()->rowCount())
?>
В селектах всегда нужно указывать псевдонимы таблиц.
точно не помню, но я много чего перепробовал.
<?php
db_select('affiliate_users_ids','a')
->countQuery()
->where('UCASE(a.text_id)=UCASE(:txt)', array(':txt' => $textid_primay_part . $textid_cnt . $textid_secondary_part))
->execute()
->fetchField()
?>
но вроде тоже не помогало. проблема решена (выше), конечно, но решение хуже, чем если бы использовал countQuery().