Ошибка преобразования при преобразовании значения nvarchar ’10, 12′ в тип данных int

$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

Есть ли кто-нибудь, кто сталкивался с этой проблемой?

3

Решение

Используйте функцию implode () для разделения значений.

Попробуйте этот обновленный код

$arrParams = array('buzzGroups' => $vBuzzGroups);
$sSql = "SELECT * FROM table1 where field1 > 0 and field2 IN
(".implode(',',$arrParams).") and active = 1";
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]