我目前正在尝试从SQL Server数据库 View 中提取某些数据,但我们限制了从Linux Web服务器访问的数据。
我们不需要编辑数据,只需将其显示在网页中即可。
在我们尝试输出并仅获取文本字段的前255个字符之前,一切看起来都很好。
有谁知道这是否是通过PHP::PDO使用FreeTDS的问题,还是应该可以正常工作?我见过其他人也有类似的问题,但似乎没有很多答案。
我使用它作为MS SQL数据库的连接字符串:
$dbConn = new PDO("odbc:Driver=FreeTDS;DSN=OURDSN;UID=WWWUser;PWD=ourpassword");
最佳答案
根据FreeTDS User Guide的说法,问题似乎是,由于“协议(protocol)定义固有的限制”,与SQL Server通话时,FreeTDS最多只能处理255个字符的varchar
。大于此的任何数据类型都必须为text
。
您可以通过相应地修改架构或在查询期间转换数据类型来解决此问题,如下所示:
SELECT CAST(mycol as TEXT) FROM mytable
关于php - MS SQL Server上的ODBC查询仅在PHP PDO(FreeTDS)中返回前255个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2409851/