PHP&;SQL Server-字段名已截断
我发现来自我的SQL Server的结果截断了字段名:PHP&;SQL Server-字段名已截断,php,sql-server-2005,Php,Sql Server 2005,我发现来自我的SQL Server的结果截断了字段名: $query = "SELECT some_really_really_long_field_name FROM ..." ... print_r($row); array( 'some_really_really_long_field_n' => 'value' ) 有人知道如何避免这种行为吗 我认为数据库驱动程序是ADODB 因此,您不必计数:字段名将被截断为31个字符 SQL Server似乎并不介意长字段名本身,因
$query = "SELECT some_really_really_long_field_name FROM ..."
...
print_r($row);
array(
'some_really_really_long_field_n' => 'value'
)
有人知道如何避免这种行为吗
我认为数据库驱动程序是ADODB
因此,您不必计数:字段名将被截断为31个字符
SQL Server似乎并不介意长字段名本身,因此我只能假设ADODB驱动程序中的某个地方有一个char[32]字符串缓冲区,它不能包含长字段名。避免截断字段名的最简单方法是使用较短的字段名
抱歉,这听起来像是一个蹩脚的答案,但它更简洁、更易于阅读和维护,而且更易于练习。避免字段名被截断的最简单方法是使用较短的字段名
抱歉,这听起来像是一个蹩脚的答案,但它更简洁、更易于阅读和维护,而且只是更好的练习。您可能正在使用已有十年历史、不推荐使用的捆绑MSSQL客户端。使用或从MSSQL server CD安装MSSQL客户端工具。您可能使用的是已有十年历史、已弃用的捆绑MSSQL客户端。使用或从MSSQL server CD安装MSSQL客户端工具。您可以使用别名作为长字段名,如下所示:
$query = "SELECT some_really_really_long_field_name AS short_alias FROM ..."
这将解决您当前的问题。但我建议使用MSSQL驱动程序连接到数据库。您可以使用别名作为长字段名,如下所示:
$query = "SELECT some_really_really_long_field_name AS short_alias FROM ..."
这将解决您当前的问题。但我建议使用MSSQL驱动程序连接到数据库。“返回列名的函数基于DBLIB中的dbcolname()函数。DBLIB是为SQL Server 6.x开发的,其中最大标识符长度为30。因此,最大列长度为30个字符。”“返回列名的函数基于dbcolname()DBLIB.DBLIB中的函数是为SQL Server 6.x开发的,其中最大标识符长度为30。因此,最大列长度为30个字符。”