PHP MSSQL VARCHAR 255字符问题

时间:2012-10-25 20:13:46

标签: php sql sql-server

问题:针对VARCHAR(256+)字段的MSSQL查询在PHP中仅返回255个字符,无论VARCHAR大小是否大于255。

我已经看到了对变通方法herehere的引用,其中解决方法基本上是将VARCHAR强制转换为TEXT:

SELECT CAST(myField AS TEXT) AS myField FROM myTable

但如果我有一堆查询,这无济于事:

SELECT * FROM myTable

我的意思是,当然,我可以查找所有类似的查询并执行:

SELECT CAST(myField AS TEXT) AS 'myField2', * FROM myTable

并将后续PHP变量从myField更新到myField2,但这对我的应用程序来说是一项非常重要的任务。更不用说我必须查找所有具有VARCHAR(256+)的表中的所有字段,然后在我的PHP应用程序中查找所有受影响的查询。

我们正在运行PHP 5.2.17并且我理解MSSQL不再受支持/开发了。我见过Microsoft支持的SQL Server驱动程序here,但我必须将我的PHP版本更新为5.3.6或5.4。如果我进行升级,我不完全确定会带来什么。另外,我们必须将所有mssql_connect()更改为sqlsrv_connect(),并将其他函数从mssql更改为我们的PHP应用程序中的sqlsvr版本。

有没有人知道任何其他解决方法(比如我可以从可信赖的来源下载更新的DbLib C API)所以我不必修改我的PHP应用程序中的所有内容?

3 个答案:

答案 0 :(得分:7)

编辑/etc/freetds.conftds version设置更改为8.0(如果您的服务器是MS SQL Server 2000或更高版本)或7.0(如果使用MS SQL Server 7),必要时取消注释设置。< / p>

答案 1 :(得分:1)

启动“MS SQL Managment Studio”

在主菜单中查询\查询选项\在此窗口中选择结果\文本,最后您将看到“每列中显示的最大字符数”,聋人有255,更改它。

答案 2 :(得分:0)

我知道这是一个老问题,但我今天正在寻找相同的答案;)

我测试了这个解决方案

select *, CAST(DESCRESTESA AS TEXT) AS DESCRESTESA from table_name

并且效果非常好