欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

yii2 - linux、mac下,php连接sql server的问题

程序员文章站 2024-01-09 19:25:16
...
我们有个项目,由不同团队开发。一边用windows + .net + sql server 2008;另外一边用linux + yii(php) + mysql开发,现在想用yii去连接sql server,开发环境的系统是osx,怎么解决连接的问题?

回复内容:

我们有个项目,由不同团队开发。一边用windows + .net + sql server 2008;另外一边用linux + yii(php) + mysql开发,现在想用yii去连接sql server,开发环境的系统是osx,怎么解决连接的问题?

http://www.yiiframework.com/doc/guide/1.1/en/database.dao#establishing...

和链接mysql是一样的。
你去连接sql server的话,把dsn配置改下就可以了

$connection=new CDbConnection('mssql:host=localhost;dbname=testdb',$username,$password);

如果host不是在一台机器上就该下host=sql_server_host

找到一些答案,遇到一些问题做个记录。

http://php.net/manual/zh/pdo.drivers.php

目前采用freeTDS和pdo_dblib解决的,但是编码有问题。yii用utf-8,sql server上用gbk。

osx配置如下,utf8放下面会报错,不知道什么原因。

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

ubuntu配置如下,utf8放哪一样,程序运行正常,但是写入sql server会乱码。

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

编码的问题已经解决,看这里:http://segmentfault.com/q/1010000002661362

研究问题之后,知道了。 unix/linux 连接 sql server 的方式很多种,比如 freetds + unixODBC(iODBC)等。

php的pdo能支持,不管哪种数据库,无非是数据库驱动器和数据库管理器的连接的问题。

PHP的PDO链接:http://php.net/manual/zh/pdo.drivers.php