laravel + pdo_dblib + freetds

2 篇文章 0 订阅

freetds是linux下连接sqlserver的重要中间件

如果是:

php7.1   homestead

service php7.1-fpm restart

sudo apt-get install php7.1-sybase

sudo apt-get install freetds-bin

如果是老版ubuntu php5

ubutnu: pdo_dblib + sqlsrv +mssql

apt-get install php5-sybase

apt-get install freetds-bin

centos 7:

yum install php56u-pdo_dblib

 

freetds.conf:

[global]

        # TDS protocol version

;       tds version = 4.2

        tds version = 7.0 //这里一定要设定7.0以上版本否则会出现很多兼容问题

        # Whether to write a TDSDUMP file for diagnostic purposes

        # (setting this to /tmp is insecure on a multi-user system)

;       dump file = /tmp/freetds.log

;       debug flags = 0xffff

        client charset = UTF8

//tds 必须选择7.0 + client charset

//找不到 dblib 解决办法

rpm -qa | grep freetds

rpm -ql freetds-devel-0.91-2.el6.x86_64

./configure --with-php-config=/usr/local/php/bin/php-config  --with-libdir=lib64

//freetds 验证

tsql -S 42.62.69.77 -U byecitysql

//这里省略了输入密码环节

use dbname

go

select * from table

go

下面是php代码做的验证mssql

//pdo_dblib验证

$dbh= new PDO("dblib:host=testServer;dbname=db","test","test");

var_dump($dbh);

//mssql 验证

$server = "42.62.69.99";

$link = mssql_connect($server, 'byecitysql', '11111111111');

if (!$link || !mssql_select_db('BCS', $link)) {

    die('Unable to connect or select database!');

}

// Do a simple query, select the version of

// MSSQL and print it.

//$version = mssql_query('SELECT @@VERSION');

$version = mssql_query('SELECT * from dbo.Base_Country');

$row = mssql_fetch_array($version);

// Clean up

mssql_free_result($version);

下面是修正sqlserver默认读取出来的日期时间 不是 标准的日期时间的问题。

修正freetds读取sqlserver中时间日期转换的问题

Redhat: /etc/locales.conf

Ubuntu: /etc/freetds/locales.conf

可能路径: /usr/local/etc/locales.conf

[default]
        #date format = %b %e %Y %I:%M:%S:%z%p

        date format = %Y-%m-%d %H:%M:%S

ubuntu 

     date format = %Y-%m-%d %H:%M:%S.000

后面的.000建议去掉统一时间格式,这样跨平台兼容性最高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值