PHP7.2环境下使用Laravel 连接 sql server

在实际的工作中,有时候我们需要用到sqlserver数据库,那么下来我们看看sqlserver的连接。

一、查看php 是否安装了 sqlsrv 扩展, 使用命令 php -m

二、如果没安装会报错 laravel could not find driver sqlsrv

三、下载安装 php 对应的sqlsrv 扩展  安装:

解压后进入目录安装:

 使用phpize7.2安装。安装完成后会生成sqlsrv.so文件,添加到php.ini中,正常的情况下我们可以看到:

 

 那么就是已经安装成功了!

接着我们在config/database.php加入下面的代码:

'sqlsrv' => [
            'driver' => 'sqlsrv',
            'url' => env('DATABASE_URL'),
            'host' => env('SQL_DB_HOST', 'localhost'),
            'port' => env('SQL_DB_PORT', '1433'),
            'database' => env('SQL_DB_DATABASE', 'forge'),
            'username' => env('SQL_DB_USERNAME', 'forge'),
            'password' => env('SQL_DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
        ],

 

SQL_DB_HOST=192.168.0.200
SQL_DB_PORT=6650
SQL_DB_DATABASE=lch-new
SQL_DB_USERNAME=lch
SQL_DB_PASSWORD=ai202109

 接着重新生成一下配置文件:

 接着我们来测试一下:

先写个连接代码:

private  $host;
    private  $port;
    private  $db;
    private  $uname;
    private  $password;
    const PATH = 'database.connections.sqlsrv.';

    public function __construct()
    {
        $this->host = config(self::PATH.'host');
        $this->port = config(self::PATH.'port');
        $this->db = config(self::PATH.'database');
        $this->uname = config(self::PATH.'username');
        $this->password = config(self::PATH.'password');
    }

    private function getConn(){
        $serverName = "tcp:".$this->host.",".$this->port;
        $database = $this->db;
        $uid = $this->uname;
        $pwd = $this->password;
        $connectionOptions = array("Database"=>$database, "Uid"=>$uid, "PWD"=>$pwd);
        $conn = sqlsrv_connect($serverName, $connectionOptions);
        return $conn;
    }

$sql = 'select * from test_order limit 20';
$getProducts = sqlsrv_query($this->getConn(), $sql);

 打印一下结果:

 可以看到执行成功!

SQL Server Driver常见的 包含以下函数:

函数           说明
sqlsrv_begin_transaction     开始事务。
sqlsrv_cancel     取消语句;并放弃相应语句的所有未决结果。
sqlsrv_client_info     提供有关客户端的信息。
sqlsrv_close     关闭连接。释放与相应连接关联的所有资源。
sqlsrv_commit     提交事务。
sqlsrv_configure     更改错误处理和日志记录配置。
sqlsrv_connect     创建一个连接,并将其打开。//第一参数是数据库地址,第二参数是数组(数据库名,登陆名,密码)
sqlsrv_errors     返回关于上一操作的错误和/或警告信息。
sqlsrv_execute     执行预定义语句。
sqlsrv_fetch     使下一行的数据可供读取。
sqlsrv_fetch_array     以数值索引数组、关联数组或这两种数组的形式检索下一行的数据。//调用形式 while(){$row['字段']}
sqlsrv_fetch_object     以对象形式检索下一行的数据。调用形式 //while(){$row->字段}
sqlsrv_field_metadata     返回字段元数据。
sqlsrv_free_stmt     关闭语句。释放与相应语句关联的所有资源。
sqlsrv_get_config     返回指定配置设置的值。
sqlsrv_get_field     按索引检索当前行中的字段。可以指定 PHP 返回类型。
sqlsrv_has_rows     检测结果集是否具有一行或多行。//判断数据库是否有查询结果好用
sqlsrv_next_result     使下一结果可供处理。
sqlsrv_num_rows     报告结果集中的行数。//要求静态或键集游标;如果您使用前进游标或动态游标,将返回 false。(前进游标是默认设置。)

猜你喜欢

转载自blog.csdn.net/lchmyhua88/article/details/120549161