Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHQL GDZIE xxx IN () może uzyskać tylko 1 dane

Ponieważ istnieje kilka przykładów pracy z PDO i PHQL tutaj i tutaj które pasuje do twojego przykładu, istnieje jeszcze jedno możliwe podejście w mechanizmie Phalcon queryBuilder:

$builder = $this->modelsManager->createBuilder();
$builder->addFrom('Application\Entities\KeywordsTrafficReal', 'tr')
        ->leftJoin('Application\Entities\Keywords', 'kw.id = tr.keyword_id', 'kw')
        ->inWhere('keyword_id', self::$keywords) // <<< it is an array!
        ->betweenWhere('traffic_date', self::$daterange['from'], self::$daterange['to']);

inWhere metoda jest osiągalna tylko przez queryBuilder o ile wiem i działa dokładnie tak samo jak wspomniane przykłady PDO IN (?, ?, ?) . Ale nie musisz wdrażać go ręcznie.

Możesz także pominąć część tworzenia PHQL i przejść bezpośrednio do tworzenia zapytania SQL, ale kosztem tworzenia własnych walidacji.

$realModel = new KeywordsTrafficReal();

$sql = sprintf('SELECT * '
            .  'FROM keywords_traffic_real tr '
            .  'LEFT JOIN keywords kw '
            .  'ON kw.id = tr.keyword_id '
            .  'WHERE tr.keyword_id IN(%s) '
            .  "AND traffic_date BETWEEN '%s' AND '%s' ",
        join(',', self::$keywords), self::$daterange['from'], self::$daterange['to']);

$results = new \Phalcon\Mvc\Model\Resultset\Simple(null, $realModel, $realModel->getReadConnection()->query($sql));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiedy ostatni raz uzyskano dostęp do tabeli mysql?

  2. Łączenie MySql z Androidem bez użycia PHP

  3. Które znaki faktycznie mogą spowodować wstrzyknięcie SQL w MySQL?

  4. Jak uniknąć tego wyjątku PDO:Nie można wykonywać zapytań, gdy inne niebuforowane zapytania są aktywne?

  5. Jak sprawdzić, na którym porcie działa MySQL i czy można go podłączyć?