php连接ms sql数据库的一些问题
sshong 发表于2014年9月15日 20:32:14 更新于2014年9月15日 20:32:14
由于项目需要从mssql导入数据到mysql数据库,记录下php连接mssql的一些问题。

1、安装,需要安装freetds
对于Debian(ubuntu这种)
apt-get install php5-sybase

2、字符集问题
mssql query如果返回
"Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier."

编辑/etc/freetds/freetds.conf,添加如下两行:
[global]
;tds version = 4.2
tds version = 8.0
client charset = UTF-8
也可以在php.ini或者mssql独立module的ini(譬如ubuntu上php各个子module都有自己的独立配置文件)中指定charset
; 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"


3、date format问题
默认mssql返回的时间类型是:mon dd yyyy hh:miAM (or PM)
这种格式插入不到mysql中(Incorrect date value),在php中也不支持,如new DateTime()。

解决方法一种是用mssql的convert语法,
另一种是设置php.ini或者mssql module的独立ini,加入
mssql.datetimeconvert = Off

参考:
mssql-query
mssql cast&convert
标签:无分类:PHP阅读:2777
评论
暂无评论
添加评论
您的大名,限长10汉字,20英文(*)
电子信箱(*)
您的网站
正文,限长500汉字,1000英文(*)
验证码(*) 单击刷新验证码
联系我
博客订阅