发布于 1970-01-01 08:00
  • 1 个回答
    • 自己找到方法了。作图记录。

      网络上的资料大部分是freetds+PDO unixODBC;因为我是用yii2的,不知道能不能用odbc没去试,yii2的文档里用freetds+PDO dblib,我就用这个了。

      先看osx环境,freetds是用命令安装的,再看下系统locale编码情况,然后验证下tsql连接和版本情况

      现在看下ubuntu环境,freetds是用命令sudo apt-get install freetds-bin装的,先看图。我的ubuntu服务器是阿里云的,查了系统locale,没有zh_CN.UTF-8的编码因此先安装这个,这个步骤网络上很多,晚点把链接贴在下面。看到第一张图的版本号是4.2,这是默认装的,为了解决乱码的问题,还要在配置文件里改成7.1,改变客户单编码为UTF-8,去掉前面的;,看图。

      数据库配置:

      //osx
      'api' => [
              'class' => 'yii\db\Connection',
              'dsn' => 'dblib:host=x.x.x.x;dbname=dbname;charset=utf8',
              'username' => 'username',
              'password' => 'password',
              //'charset' => 'utf8', //放这报错
      ],
      
      //ubuntu
      'api' => [
          'class' => 'yii\db\Connection',
          'dsn' => 'dblib:host=x.x.x.x;dbname=dbname',
          'username' => 'username',
          'password' => 'password',
          'charset' => 'utf8',
      ],
      

      相关链接:

      freetds:http://www.freetds.org/userguide/index.htm
      freetds+PDO unixODBC:http://www.open-open.com/lib/view/open1405003628966.html
      freetds+PDO unixODBC:http://aseity.blog.163.com/blog/static/16481711200702061211659/
      freetds安装:http://www.jxm.cc/blogs/473.html
      locate安装:http://www.kuqin.com/zhanz/20120219/318273.html
      locale介绍:http://blog.csdn.net/rstevens/article/details/2025410

      2022-12-01 14:59 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有