php 远程连接 SQL server数据库

12 篇文章 0 订阅
2 篇文章 0 订阅

【背景】:因为小编公司要求,需要php去连接操作SQL server数据库;这个问题困扰了小编一周的时间老烦人了,为了小编自己也为了帮助跟小编有同样困惑的猿友们,所以决定抽个时间好好记录一下该问题,以防以后遗忘;本次方法,小编亲测可用,希望能帮助到大家。

一、运行环境

操作系统 = Linux Centos7.4

服务器软件 = Nginx1.18

脚本语言:PHP7.4

数据库:SQL server2012

框架:Laravel5.2

特殊要求:gcc4.8版本以上(版本太低的话,无法编译pdo_sqlsrv
二、php连接 SQL server 需要安装php的2个扩展(pdo_sqlsrv 和 sqlser)
1.先下载pdo_sqlsrv源码包(所有Linux操作最好都使用root用户权限)

pecl install pdo_sqlsrv

pecl install sqlser

三、配置laravel

1.在laravel目录中找到.env文件;这是个隐藏文件,我们可以用ll -a去找到它,并找到APP_URL=http://localhost,在其下面加上以下字段。

DB_CONNECTION=sqlsrv
DB_HOST=连接IP
DB_DATABASE=master(初始数据库)
DB_USERNAME=连接数据库用户名
DB_PASSWORD=连接密码

2.找到laravel目录下的laravel\config\database.php,并打开在其'connections' => []中加入以下信息:

'sqlsrv'=> [
            'driver'=>'sqlsrv',
            'host'=> env('DB_HOST','连接IP'),
            'database'=> env('DB_DATABASE','master'),
            'username'=> env('DB_USERNAME','连接数据库用户名'),
            'password'=> env('DB_PASSWORD','连接密码'),
            'charset'=>'utf8',
            'prefix'=>'',
        ],

3.在laravel\app\Http\routes.php配置测试路由

Route::get('test', 'IndexController@server_test');

4.在laravel\app\Http\Controllers\IndexController.php新建server_test函数

    //SQLserver连接测试
    public function server_test(){
        //php用pdo_sqlsrv驱动源码连接
       /* $conn = sqlsrv_connect('连接IP',array('Database'=>'master','UID'=>'用户名','PWD'=>'密码'));
        if($conn == false){
          var_dump(sqlsrv_errors());exit;
        }
        $sql = "SELECT TOP 1000 * FROM [dbo].[spt_monitor]";
        $result = @sqlsrv_query($conn, $sql);
        while ( $re = @sqlsrv_fetch_array($result)) {
            dump($re);
        }*/

        //laravel内置DB类连接
        $res = DB::table('dbo.spt_monitor')->get();
        dd($res);
    }

四、这个时候进行测试话,应该会报一个,缺少SQL server连接驱动的错误,我们跟着要求在Linux服务器上安装即可:

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo

yum remove unixODBC-utf16 unixODBC-utf16-devel

ACCEPT_EULA=Y yum install msodbcsql17

sudo ACCEPT_EULA=Y yum install mssql-tools

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

source ~/.bashrc

yum install unixODBC-devel

五、测试连接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值