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服务器。