我在MS-SQL Server上有一个数据库。有一个带有column contact_uuid(PK,FK,Binary(16),not null)的表。 我将PHP 7.3与odbc一起使用二进制INDEX从该表中执行SELECT。
$sql="SELECT * FROM mdb.dbo.ca_contact WHERE contact_uuid = convert(binary,0x".$uuid.");";
$connection = getconnectionmSSQL('BD');
odbc_do($connection,'SET QUOTED_IDENTIFIER ON');
$query = odbc_exec($connection,$sql);
odbc_fetch_row($query,0);
if(($row = odbc_fetch_array($query)) != false)
{
while($row = odbc_fetch_array($query))
$salida[] = $row;
}
else $salida[]="Fallo la consulta: $sql<br>: ".odbc_error();
print_r($salida);
如果使用脚本,我将得到:
咨询的地址:SELECT * FROM mdb.dbo.ca_contact在哪里contact_uuid = convert(binary,0x3674B515FFE11C4F85BF48A4B1BC29F2);
如果直接在SQL SERVER MANAGEMENT STUDIO上使用输出,则会得到正确的结果集。