PDO 不读取 MSSQL Server 的 nvarchar 数据类型
PDO not reading nvarchar datatye of MSSQL Server
我在MSSQL Server 2012中有一个table,其中一列的数据类型定义如下:
COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE
description 2005 nvarchar 1073741823
当我运行这个查询时:
select * from tablename
使用 PHP PDO 然后我没有得到任何结果。如果我在上面 sql select 查询中写下所有字段的名称,但不包括该字段,那么我会得到结果。
这种数据类型有什么问题?
注意:这个table是通过一些工具直接从MySQL导入的。
我在谷歌上搜索了很多,但找不到任何解决方案。
这个网站上的解决方案似乎与此相关,http://eugenioz.blogspot.com/2013/07/php-mssql-nvarchar-fetch-and-write-utf.html。
如果该站点删除 post 或出现故障,解决方案是将 nvarchar 转换为 varchar。
SELECT CAST(CAST([field] AS VARCHAR(8000)) AS TEXT) AS field FROM table
对于插入,它显示为
INSERT INTO some_table (some_nvarchar_field) VALUES(CONVERT(nvarchar(MAX), 0x'.$value.'))
我在MSSQL Server 2012中有一个table,其中一列的数据类型定义如下:
COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE
description 2005 nvarchar 1073741823
当我运行这个查询时:
select * from tablename
使用 PHP PDO 然后我没有得到任何结果。如果我在上面 sql select 查询中写下所有字段的名称,但不包括该字段,那么我会得到结果。
这种数据类型有什么问题?
注意:这个table是通过一些工具直接从MySQL导入的。
我在谷歌上搜索了很多,但找不到任何解决方案。
这个网站上的解决方案似乎与此相关,http://eugenioz.blogspot.com/2013/07/php-mssql-nvarchar-fetch-and-write-utf.html。
如果该站点删除 post 或出现故障,解决方案是将 nvarchar 转换为 varchar。
SELECT CAST(CAST([field] AS VARCHAR(8000)) AS TEXT) AS field FROM table
对于插入,它显示为
INSERT INTO some_table (some_nvarchar_field) VALUES(CONVERT(nvarchar(MAX), 0x'.$value.'))