Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn sql thô Symfony2.3 với Mệnh đề IN

Trả lời:

Vì vậy, có ít nhất hai sai lầm bạn đã làm. Đầu tiên là những gì @Alarid đã nói:bạn không nên mã hóa mảng của mình. Thứ hai là bạn phải sử dụng DoctrineDBALTypes Conversion cho mệnh đề IN clause khi chạy một câu lệnh đã chuẩn bị.

Và cuối cùng truy vấn của bạn là:

$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();

Hoặc thay thế:

$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. Lỗi chỉ xảy ra sau khi xuất bản:Không thể kết nối với bất kỳ máy chủ MySQL nào được chỉ định.

  2. Sử dụng ký tự Trung Quốc để đặt tên cho bảng MySQL

  3. Có chế độ SQL nào cho MySQL cho phép WHERE x =NULL (nghĩa là WHERE x LÀ NULL) không?

  4. Sự cố với Apache trong Xampp sau nhiều lần cài đặt Apache

  5. Tạo ứng dụng web từ Scratch bằng Python Flask và MySQL:Phần 5