the yssoft logo

动态资讯

Linux下php通过dblib访问sql server数据库

来源:远思软件 发布时间:2025-12-13 浏览次数:2004 发布人:远思软件

Linux下php通过dblib访问sql server数据库


windows下通过sqlsrv连接sql server,

linux下通过dblib也能连接sql server,不一定要部署在windows操作系统下。


1、安装freetds

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
#进入freetds目录
./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib
make && make install


2、安装pdo_dblib

下载php源码,进入ext/pdo_dblib目录,安装PHP拓展三部曲

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/
make && make install

3、重启web服务器,使php拓展生效


下面以thinkphp5为示例,连接sql server 2008,database.php

// 数据库类型
'type'            => 'sqlsrv',
// 配置dsn
'dsn'             => 'dblib:version=7.3;charset=UTF-8;host=服务器IP地址:服务器端口;dbname=数据库名称;',
// 用户名
'username'        => '数据库用户名',
// 密码
'password'        => '数据库密码',

测试数据库表结构

CREATE TABLE "tb_test" (
	"fid" INT NOT NULL,
	"fname" VARCHAR(50) NULL DEFAULT NULL,
	PRIMARY KEY ("fid")
);

控制器

namespace app\index\controller;

use think\Db;

class TestController{

    //分页查询
    function all() {
        $ret = Db::name('test')->page(0, 5)->select();
        print_r($ret);
    }
    
    //insert增加
    function add() {
        $ret = Db::name('test')->insert([
            'fname' => '远思软件'.rand(100,999)   
        ]);
        print_r($ret);
    }
    
    //编辑 
    function edit() {
        $ret = Db::name('test')->where([
            'fid' => ['>',1]
        ])->update([
            'fname' => 'www.yssoft.cn'
        ]);
        print_r($ret);
    }
}


如果你有任何疑问请拨打

服务热线:0755-84532935 15915427080(肖经理)

或则在线QQ咨询 在线咨询