阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 1495|回复: 0

[php] Thinkphp操作MsSQL心得

[复制链接]
  • TA的每日心情
    开心
    2021-8-30 00:00
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2016-12-14 14:09:22 | 显示全部楼层 |阅读模式

    [size=0.9285714286em]之前,在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,’注释掉即可。

    [size=0.9285714286em]2、报错”SQLSTATE[IMSSP]: An unsupported attribute was designated on the PDO object”
    具体的解决办法为:将ThinkPHP\Library\Think\Db\Driver.class.php中第101行’$this->options[PDO::ATTR_EMULATE_PREPARES]  =   false’注释掉即可。

    [size=0.9285714286em]3、如果原表名大写则会报错找不到表名
    具体的解决办法为:不管MsSQL数据库表名是否小写,在ThinkPHP项目中所有表名小写。

    [size=0.9285714286em]下面附上ThinkPHP3.2中操作MsSQL的配置文件conf.php:

    1. return array(
    2. //'配置项'=>'配置值'
    3. 'DB_TYPE' => 'sqlsrv', // 数据库类型
    4. 'DB_USER' => '', // 用户名
    5. 'DB_PWD' => '', // 密码
    6. 'DB_PORT' =>'', // 端口
    7. 'DB_PREFIX' => '', // 数据库表前缀
    8. 'DB_DSN'=> 'dblib:host=IP地址:端口;dbname=数据库名称',
    9. 'DB_CHARSET' => 'utf8', // 字符集
    10. );
    复制代码


    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表