对MS SQL 进行查询时,数据类型转换出错。character string to uniqueidentifier
我试图对数据库进行查询,但出现错误。我按照指示做所有事情。
错误:
SQLSTATE[42000]:[Microsoft][SQL Server 的 ODBC 驱动程序 11][SQL Server]从字符串转换为唯一标识符时转换失败
请求代码:
$queryValueData = 'SELECT ETA_Employee_id as eta_id, GroupSort as gs, MeasureName as mn, MeasureSort as ms, Value as value
FROM
EO_TS
WHERE
TS_employee_id IN (:ids)
AND Date BETWEEN :ds AND :df
AND TableName = :tableName
ORDER BY
ETA_Employee_id, GroupSort, MeasureSort';
$valueData = $conn->executeQuery(
$queryValueData,
array(
'ids' =>$tsIds,
'ds' => $date->format('Y-m-d 00:00:00.000000 +02:00'),
'df' => $date->format('Y-m-d 23:59:59.000000 +02:00'),
'tableName' => $tableName,
),
array(\Doctrine\DBAL\Connection::PARAM_STR_ARRAY)
);
如果要传输而不是IN一个值,则请求成功完成。我也试过通过参数指定类型,同样没有得到结果。更改了下一个值
\Doctrine\DBAL\Connection::PARAM_STR_ARRAY
在
$type = \Doctrine\DBAL\Types\Type::getType('guid');
$tsIds 数组以下列格式存储数据:
83176DA0-C808-48D7-B802-3A2ADE61740A
需要指明字符串类型数组属于哪个参数:
'ids' => \Doctrine\DBAL\Connection::PARAM_STR_ARRAY。结果,我们得到: