2017-02-14 11 views
3

Извещение: массив в строку Преобразование в Doctrine QueryПримечание: Array для струнного Converstion в Doctrain Запрос

foreach($listLocations as $k=>$location){ 
    $list[] = "'".$location['id']."'"; 
} 

$storesList = implode(',', $list); // Печатает строки (23) " '191', '195',» 215' , '265'»

$storesList = (string)$storesList; 

я изменил его в строку, но в запросе он все еще рассматривает в качестве массива

$sql="SELECT * from tbl_students WHERE s.store_id IN (".$storesList .")"; 
$conn = $this->getEntityManager()->getConnection();  
$stmt = $conn->prepare($sql); 

ответ

3

Прежде всего изменения $list[] = "'".$location['id']."'"; к

$list[] = $location['id']; 

Теперь сделайте, как показано ниже: -

$storesList = "('".implode("','", $list)."')"; 

И

$sql="SELECT * from tbl_students WHERE s.store_id IN $storesList"; 

Пример ссылки для справки: - https://eval.in/736486

+1

красивый и быстрый ответ. пример хорошо. – Deep

+0

@Deep thanks.Appreciate, что –

+1

Спасибо за ответ, но все же я встречаюсь с той же проблемой. – Developer