PDO и MS SQL Server: вставка значения для целочисленного столбца приводит к ошибке

Я пытаюсь вставить целочисленное значение в столбец INT. Однако, когда я выполняю следующий PHP-код, это приводит к ошибке, сообщающей мне, что я пытаюсь вставить "текст", чего не должно быть...

PHP

$myCode = 1;
$sth = $db->prepare("INSERT INTO tblCodes (myCode) VALUES (:myCode)");
$sth->bindParam(':myCode', $myCode, PDO::PARAM_INT);
$sth->execute();

Ошибка

SQLSTATE [22018]: Недопустимое значение символа для спецификации литья: 206 [FreeTDS] [SQL Server] Столкновение типа операнда: текст несовместим с int (SQLExecute [206] at /builddir/build/BUILD/php -5.6.9/ext/pdo_odbc/odbc_stmt.c:254)

Может кто-нибудь мне помочь? Большое спасибо!

Ответ 1

Я думаю, что это ошибка. Я решил свою проблему путем изменения запроса. В вашем случае измените запрос, как показано ниже:

$myCode = 1;
$sth = $db->prepare("INSERT INTO tblCodes (myCode) VALUES (CAST(CAST(:myCode AS varchar) AS INTEGER))");
$sth->bindParam(':myCode', $myCode, PDO::PARAM_INT);
$sth->execute();

Теперь он должен работать как с PDO::PARAM_INT, так и PDO::PARAM_STR.