我在MSSQL Server 2012中有一张表,其一列的数据类型定义如下:
COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE
description 2005 nvarchar 1073741823
当我运行此查询时:
select * from tablename
使用PHP PDO,那么我没有任何结果.而且,如果我在上面的sql select查询中写了所有字段的名称,但不包括该字段,则会得到结果.
此数据类型有什么问题?
注意:此表是使用某些工具从MySQL直接导入的.
我已经用谷歌搜索了很多,但没有得到任何解决方案.
解决方法:
该网站上的解决方案似乎与此处相关,为http://eugenioz.blogspot.com/2013/07/php-mssql-nvarchar-fetch-and-write-utf.html.
如果该站点删除了帖子或发生故障,解决方案是将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.'))