下面是“Linux下php连接SQLServer2000数据库的配置方法”的详细攻略。
环境准备在Linux系统中,php默认只支持MySQL数据库,而不支持MS SQL Server。因此,如果要在Linux系统中使用php连接SQL Server数据库,需要先进行两个方面的准备:
- 安装php的扩展mssql
- 配置ODBC数据源,使其能够连接到SQL Server数据库。
mssql是php用来连接MS SQL Server的扩展。在Linux系统中,需要先安装FreeTDS(Microsoft SQL Server和Sybase的开源库)和unixODBC(ODBC开源实现库)。
以下是在Ubuntu系统中安装FreeTDS和unixODBC开发库的命令,ArchLinux和其他发行版可以根据自己的包管理器进行安装:
sudo apt-get install freetds-dev unixodbc-dev
安装完成后,可以通过以下命令来安装mssql扩展:
pecl install mssql
安装完成后,在php.ini中添加以下配置:
extension=mssql.so
配置ODBC数据源
在Linux系统中,可以使用FreeTDS/unixODBC配置ODBC数据源来连接SQL Server。以下是配置步骤:
- 安装FreeTDS和unixODBC库(已安装,可跳过);
- 编辑/etc/freetds/freetds.conf文件,在后面添加以下内容(用自己的ip,用户名,密码,数据库代替下面的示例内容):
[MyMSSQLServer]
host = 192.168.1.100
port = 1433
tds version = 8.0
client charset = UTF-8
- 编辑/etc/odbc.ini文件,添加以下内容:
[MyMSSQLServer]
Description = ODBC for My MSSQL Server
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Servername = MyMSSQLServer
Database = MyDatabase
Port = 1433
TDS_Version = 8.0
- 编辑/etc/odbcinst.ini文件,添加以下内容:
[FreeTDS]
Description = FreeTDS Driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
FileUsage = 1
其中,[FreeTDS]表示driver的标题,Description是自己随便写的描述,Driver是驱动程序地址。
自由互联热门推荐:PDF电子发票识别软件,一键识别电子发票并导入到Excel中!10大顶级数据挖掘软件!人工智能的十大作用!- 测试数据源是否配置成功
在命令行中执行以下命令:
isql -v MyMSSQLServer username password
其中MyMSSQLServer,username和password是你的SQLServer服务器名、用户名和密码。如果出现类似下面的结果,则数据源配置成功了:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
PHP代码连接SQL Server
准备工作就绪之后,就可以开始PHP代码的编写了。以下是连接SQL Server并查询数据的PHP代码示例:
<?php
$conn = mssql_connect('MyMSSQLServer', 'username', 'password');
if (!$conn) {
die('connect failed.');
}
$result = mssql_query('SELECT * FROM mytable');
while ($row = mssql_fetch_assoc($result)) {
print_r($row);
}
mssql_free_result($result);
mssql_close($conn);
?>
其中,mssql_connect函数的参数MyMSSQLServer是数据源的名称,username和password是连接数据库所需的用户名和密码。如果连接成功,则会返回连接资源句柄,否则返回false。
mssql_query函数用于执行SQL语句,返回数据集合。该函数的参数是要执行的SQL语句。
mssql_fetch_assoc函数用于从数据集合中逐行提取数据,以数组形式返回。
mssql_free_result函数用于释放查询结果集。
mssql_close函数用于关闭连接。