PHP如何连接MS SQL服务器

1. 简介

Microsoft SQL Server (简称:MS SQL)是一个面向企业级的关系型数据库管理系统,由微软公司开发和维护,其与PHP的连接可以使用ODBC扩展、SQLSRV扩展、PDO扩展等方式。其中,ODBC扩展是php中常用的连接MS SQL服务器的方式之一,其封装了ODBC API,并且在windows与Linux两个平台下都能正常工作。

2. 准备工作

2.1 安装ODBC扩展

默认情况下,php没有安装ODBC扩展,需要手动安装。可使用以下命令在linux系统下安装:

sudo apt-get install php7.0-odbc

其中,7.0为你的php版本号。

2.2 配置ODBC数据源

在连接MS SQL服务器之前,需要先配置ODBC数据源以保证连接能够正常。可以在windows系统下使用ODBC数据源配置或者在Linux系统下使用unix-odbc软件包进行配置。下面以Linux系统为例讲解unix-odbc配置方法:

首先,需要安装unix-odbc:

sudo apt-get install unixodbc unixodbc-dev

然后,使用以下命令编辑odbc配置文件:

sudo vi /etc/odbcinst.ini

添加下面的内容:

[SQL Server]

Description = ODBC for Microsoft SQL Server

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

UsageCount = 1

[SQL Server]是数据源名称,Driver指定驱动文件路径,Setup指定驱动管理器文件路径。

接下来,使用以下命令编辑odbc配置文件:

sudo vi /etc/odbc.ini

添加下面的内容:

[your_data_source_name]

Driver = SQL Server

Server = your_server_name_or_IP

Port = 1433

Database = your_database_name

TDS_Version = 7.2

TrustServerCertificate = yes

UID = your_user_name

PWD = your_password

[your_data_source_name]是自定义数据源名称,[UID]和[PWD]为用户名和密码,[TDS_Version]为协议版本号,根据MS SQL Server版本不同可以选择不同的版本号。

完成以上操作后,可以使用以下命令测试是否能够连接到数据源:

isql your_data_source_name your_user_name your_password

如果出现交互式SQL命令行,则表示可以正常连接到数据源。

3. 连接MS SQL服务器

3.1 ODBC方式连接MS SQL服务器

使用new ODBC()连接MS SQL服务器需要以下参数:

DSN:数据源名称。

UID:用户名。

PWD:密码。

示例代码如下:

<?php

$dsn = 'your_data_source_name';

$user = 'your_user_name';

$password = 'your_password';

$conn = new ODBC($dsn, $user, $password);

if ($conn) {

echo 'Connected to MS SQL Server successfully!';

} else {

echo 'Failed to connect to MS SQL Server!';

}

?>

3.2 SQLSRV方式连接MS SQL服务器

SQLSRV是php中连接MS SQL服务器的一个官方扩展,需要在php.ini文件中启用扩展。可以将以下内容添加到php.ini中:

extension=php_sqlsrv_7_ts_x86.dll

extension=php_pdo_sqlsrv_7_ts_x86.dll

其中,以上两行代码是针对Windows系统的,如果是Linux系统,需要替换为适合自己系统的代码。

使用以下代码连接MS SQL服务器:

<?php

$serverName = "your_server_name_or_IP";

$connectionOptions = array(

"Database" => "your_database_name",

"Uid" => "your_user_name",

"PWD" => "your_password"

);

$conn = sqlsrv_connect($serverName, $connectionOptions);

if ($conn) {

echo 'Connected to MS SQL Server successfully!';

} else {

echo 'Failed to connect to MS SQL Server!';

}

?>

3.3 PDO方式连接MS SQL服务器

使用PDO方式连接MS SQL服务器需要在php.ini文件中启用php_pdo_odbc扩展和php_pdo_sqlsrv扩展:

extension=php_pdo_odbc.dll

extension=php_pdo_sqlsrv.dll

使用以下代码连接MS SQL服务器:

<?php

$dsn = "odbc:DRIVER={SQL Server};Server=your_server_name_or_IP;Port=1433;Database=your_database_name;";

$user = "your_user_name";

$password = "your_password";

$conn = new PDO($dsn, $user, $password);

if ($conn) {

echo 'Connected to MS SQL Server successfully!';

} else {

echo 'Failed to connect to MS SQL Server!';

}

?>

4. 结论

本篇文章介绍了PHP连接MS SQL服务器的三种方式:ODBC方式、SQLSRV方式、PDO方式。其中,ODBC方式适用于windows和Linux两种平台,SQLSRV方式只适合windows平台,PDO方式适用于所有支持PDO扩展的环境。需要根据实际情况选择不同的连接方式。在连接之前,需要先配置ODBC数据源,保证连接能够正常。在选择完连接方式后,可根据实际情况选择不同的代码进行连接,保证能够顺利连接到MS SQL服务器。

数据库标签