MS SQL Server上的ODBC查询仅在PHP PDO(FreeTDS)中返回前255个字符

Del*_*Del 6 php sql-server odbc pdo freetds

我目前正在尝试从SQL Server数据库视图中提取一些数据,这些数据是我们从Linux Web服务器限制访问的.

我们无需编辑数据,只需将其显示在网页中即可.

在我们尝试输出并且只获取文本字段的前255个字符之前,这一切看起来都很好.

有谁知道这是通过PHP :: PDO使用FreeTDS是否有问题,或者它是否应该正常工作?我见过其他人有类似的问题,但似乎没有很多答案.

我正在使用它作为MS SQL db的连接字符串:

$dbConn = new PDO("odbc:Driver=FreeTDS;DSN=OURDSN;UID=WWWUser;PWD=ourpassword");
Run Code Online (Sandbox Code Playgroud)

Red*_*ter 8

根据FreeTDS用户指南,问题似乎是FreeTDS varchar在与SQL Server交谈时最多只能处理255个字符"由于协议定义中固有的限制".任何比这更大的东西都需要是数据类型text.

您可以通过相应地修改架构或在查询期间转换数据类型来解决此问题,如下所示:

SELECT CAST(mycol as TEXT) FROM mytable
Run Code Online (Sandbox Code Playgroud)