Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan sql mentah Symfony2.3 dengan IN Clause

Jawaban:

Jadi setidaknya ada dua kesalahan yang Anda lakukan. Yang pertama adalah apa yang @Alarid katakan:Anda tidak boleh meledakkan array Anda. Yang kedua adalah Anda harus menggunakan DoctrineDBALTypes Conversion untuk IN clause saat menjalankan pernyataan yang telah disiapkan.

Dan akhirnya pertanyaan Anda menjadi ini:

$stmt = $this->getDoctrine()->getEntityManager()
        ->getConnection()
        ->prepare('SELECT t1.id , t1.name , t2.start_date , t2.end_date
        FROM table1 t1 , table2 t2
        WHERE t1.id = t2.matchId AND  t1.id IN (:ids)');

$stmt->bindValue('ids', $idSArray, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY);
$stmt->execute();

Atau alternatif:

$stmt = $this->getDoctrine()->getEntityManager()
    ->getConnection()
    ->executeQuery('SELECT t1.id , t1.name , t2.start_date , t2.end_date
        FROM table1 t1 , table2 t2
        WHERE t1.id = t2.matchId AND  t1.id IN (:ids)',
        array('ids' => $idSArray),
        array('ids' => \Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
    )
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Daftar dalam klausa 'IN' MyBatis

  2. Bermain! Kerangka 1.2.4 --- Pengaturan C3P0 untuk menghindari kegagalan tautan Komunikasi lakukan untuk waktu idle

  3. Bagaimana saya bisa menggunakan kondisi OR dalam ekspresi MySQL CASE?

  4. Keamanan utas dari Select Last_Insert_ID dari MySQL

  5. debug kueri mysqli dengan atau mati mysqli_error