Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&;SQL Server-字段名已截断_Php_Sql Server 2005 - Fatal编程技术网

PHP&;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似乎并不介意长字段名本身,因

我发现来自我的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个字符。”