PHP& SQL Server - 字段名称被截断

时间:2009-05-22 05:13:11

标签: 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似乎并不介意长字段名称,因此我只能假设在ADODB驱动程序中某处有一个char [32]字符串缓冲区,它不能包含长名称。

3 个答案:

答案 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)

避免截断字段名称的最简单方法是使用较短的字段名称....

很抱歉,这听起来像是一个糟糕的答案,但它更干净,更易于阅读和维护,只是更好的练习。