Laravel 4 + CentOS + MSSQL 2012 =错误

时间:2015-07-06 11:28:07

标签: php sql-server laravel unicode

我的laravel 4应用程序正在从MSSQL 2012服务器检索数据。它在Windows上工作正常但在CentOS上部署我遇到以下错误:

  

下一个异常'Illuminate \ Database \ QueryException',消息'SQLSTATE [HY000]:常规错误:4004常规SQL Server错误:检查来自SQL Server [4004]的消息(严重级16)[(null)]

检查MSSQL错误映射,确切错误是:

  

无法使用DB-Library(z.B. isql)或ODBC 3.7或更早版本的用户使用仅限Unicode的归类或ntext数据中的Unicode数据发送给客户端。

谷歌搜索后,我发现唯一的东西是freetds版本太低,我在etc / freetds.conf中将它从4.2更改为7.0 - 没有任何变化。请告知这里可能出现的问题。

2 个答案:

答案 0 :(得分:0)

快速搜索并找到了更多可以做的事情:

In /etc/freetds/freetds.conf add these two lines (last two):
[global]
;tds version = 4.2
tds version = 8.0
client charset = UTF-8

You can edit "charset" in php.ini too (but you don't need if you did it previously in freetds.conf):
;Specify client character set..
;If empty or not set the client charset from freetds.comf is used
;This is only used when compiled with FreeTDS
mssql.charset = "UTF-8"

希望这有效。

答案 1 :(得分:0)

就像你引用的那样:

  

无法发送仅限Unicode的归类或ntext数据中的Unicode数据   使用DB-Library(z.B.isql)或ODBC版本3.7或的客户端   早期使用。

因此,您需要升级browser.div( :class => 'search_data_outer_div').div( :class => 'image_area').links.first.click 驱动程序而非 ODBC,在您的情况下,您可能需要考虑升级freetds