$sSql = "SELECT * FROM table1 where field1 > 0 and field2 IN (:buzzGroups) and active = 1";
$arrParams = array('buzzGroups' => $vBuzzGroups);
$stmt = $this->tableGateway->getAdapter()->createStatement($sSql);
$stmt->prepare($sSql);
$data = $stmt->execute($arrParams);
Вот значение $vBuzzGroups = '10,12';
когда я передаю только одно значение, то это работает, но когда я пытаюсь с несколькими значениями .., которые разделены запятой, это дает мне ошибку,
Conversion failed when converting the nvarchar value '10,12' to data type int
Есть ли кто-нибудь, кто сталкивался с этой проблемой?
Используйте функцию implode () для разделения значений.
Попробуйте этот обновленный код
$arrParams = array('buzzGroups' => $vBuzzGroups);
$sSql = "SELECT * FROM table1 where field1 > 0 and field2 IN
(".implode(',',$arrParams).") and active = 1";
Других решений пока нет …