sunwy 发表于 2016-12-14 14:09:22

Thinkphp操作MsSQL心得

之前,在PHP程序员雷雪松的博客中已经详细的介绍了Linux下MsSQL扩展的安装。本以为这个解决了以后,使用国内优秀的PHP框架ThinkPHP就会应该比较顺利的。但是在连接MsSQL数据库的时候还是遇到了一些问题,网上解决的方案并不多。下面PHP程序员雷雪松就把ThinkPHP项目中链接MsSQL数据库报错和解决办法总结出来分享给需要的朋友。

1、报错”Undefined class constant ‘PDO::SQLSRV_ATTR_ENCODING”
具体的解决办法为:将ThinkPHP\Library\Think\Db\Driver\Sqlsrv.class.php中第26行’PDO::SQLSRV_ATTR_ENCODING => PDO::SQLSRV_ENCODING_UTF8,’注释掉即可。2、报错”SQLSTATE: An unsupported attribute was designated on the PDO object”
具体的解决办法为:将ThinkPHP\Library\Think\Db\Driver.class.php中第101行’$this->options=   false’注释掉即可。3、如果原表名大写则会报错找不到表名
具体的解决办法为:不管MsSQL数据库表名是否小写,在ThinkPHP项目中所有表名小写。下面附上ThinkPHP3.2中操作MsSQL的配置文件conf.php:return array(
//'配置项'=>'配置值'
'DB_TYPE' => 'sqlsrv', // 数据库类型
'DB_USER' => '', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' =>'', // 端口
'DB_PREFIX' => '', // 数据库表前缀
'DB_DSN'=> 'dblib:host=IP地址:端口;dbname=数据库名称',
'DB_CHARSET' => 'utf8', // 字符集
);

页: [1]
查看完整版本: Thinkphp操作MsSQL心得