我发现来自我的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]字符串缓冲区,它不能包含长名称。
答案 0 :(得分:5)
您可能正在使用这个已有十年历史的,已弃用的捆绑式MSSQL客户端。使用new MSSQL driver for PHP from Microsoft或安装MSSQL服务器CD中的MSSQL客户端工具。
答案 1 :(得分:2)
您可以为长字段名称使用别名,如下所示:
$query = "SELECT some_really_really_long_field_name AS short_alias FROM ..."
这将适用于您当前的问题。但我建议使用PDO MSSQL驱动程序连接数据库。
答案 2 :(得分:1)
避免截断字段名称的最简单方法是使用较短的字段名称....
很抱歉,这听起来像是一个糟糕的答案,但它更干净,更易于阅读和维护,只是更好的练习。