LNMP CentOS 服務器安裝 freetds 和 pdo_dblib,TP5裏連接sqlserver

1、安裝freetds

$ cd /root/lnmp1.5/src
$ wget ftp://ftp.freetds.org/pub/freetds/current/freetds-current.tar.gz
$ tar zxvf freetds-current.tar.gz
$ cd freetds-dev.1.00.411
$ ./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib
$ make && make install

2、安裝pdo_dblib

$ cd /root/lnmp1.5/src
$ ls 
----------------------------------------------------------------------
php-7.1.18.tar.bz2   phpMyAdmin-4.8.1-all-languages.tar.xz ...
#發現php安裝文件: php-7.1.18.tar.bz2 每個人的PHP安裝版本不同,根據自己的PHP版本來選擇
$ tar jxvf php-7.1.18.tar.bz2
$ cd /root/lnmp1.5/src/php-7.1.18/ext/pdo_dblib/
$ /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds
$ make && make install
----------------------------------------------------------------------
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

3、在php.ini最後一行追加上面的路徑

$ vi /usr/local/php/etc/php.ini

extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/pdo_dblib.so”

4、重啓fpm

$ lnmp php-fpm restart 

5、測試是否能夠連接遠程mssql

$ /usr/local/freetds/bin/tsql -H 192.1.1.1 -p 1433 -U admin -P 123456 -D dbname
----------------------------------------------------------------------
#如果成功會有如下顯示:
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Setting dbname as default database in login packet
1> 

6、TP5 使用dblib連接遠程sqlserver

//初始化dblib
protected function init_sql_db ()
    {
        $hostname = "192.1.1.1";
        $port = 1433;
        $dbname = "dbname";
        $username = "admin";
        $pw = "123456";
        $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname", "$username", "$pw");
        trace($dbh);
        $dbh->setAttribute(PDO::ATTR_PERSISTENT, false);
        echo 'success';
        return $dbh;
    }

   //調用dblib
    public function t()
    {
        $dbh = $this->init_sql_db();

        $sqlStr = "SELECT id,name FROM  user where id>10 limit 10";
        $stmt = $dbh->prepare($sqlStr);
        $stmt->execute();
        $items = [];
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
        {
            echo json_encode($row)."\r\n";
            array_push($items, $row);
        }
        var_dump($items);

        $stmt = null;
        unset($stmt);
        $dbh= null;
        unset($dbh);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章