让我为您详细讲解“Linux编译mssql扩展使用php连接sqlserver2008的使用步骤”的完整攻略,包含以下步骤:
步骤一:安装FreeTDS
FreeTDS是一个开源的ODBC驱动程序,用于连接MSSQL和Sybase数据库。在Linux系统中编译mssql扩展之前,首先需要安装FreeTDS。
安装方法
- 下载FreeTDS压缩包,解压并进入解压后的目录:
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.2.4.tar.gz
tar -xzvf freetds-1.2.4.tar.gz
cd freetds-1.2.4
- 配置编译选项:
./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib --enable-dbmfix --with-gnu-ld
其中:
- --prefix
:指定FreeTDS的安装目录。
- --with-tdsver
:指定TDS版本。
- --enable-msdblib
:启用Microsoft db-lib数据库库。
- --enable-dbmfix
:启用数据库库中的小问题修复。
- --with-gnu-ld
:指定使用GNU链接器
3. 编译并安装:
make && make install
步骤二:编译mssql扩展
方法一:手动编译
- 下载php源码并解压:
wget https://www.php.net/distributions/php-7.3.11.tar.gz
tar -xzvf php-7.3.11.tar.gz
cd php-7.3.11/ext/mssql
- 编译mssql扩展:
phpize
./configure --with-php-config=/usr/bin/php-config --with-mssql=/usr/local/freetds
make && make install
其中:
- ./configure
:指定了编译参数,其中--with-php-config
指定了PHP的配置路径,--with-mssql
指定了FreeTDS的安装路径。
方法二:通过pecl安装
执行以下命令:
pecl install sqlsrv pdo_sqlsrv
安装好后,需要在php.ini中增加以下两行:
extension=sqlsrv.so
extension=pdo_sqlsrv.so
步骤三:测试连接
为了确保mssql扩展正常工作,需要编写一个简单的PHP脚本测试它。
<?php
$serverName = "your_servername";
$connectionOptions = array(
"Database" => "your_database",
"Uid" => "your_username",
"PWD" => "your_password"
);
//Establishes a connection to MSSQL.
$conn = sqlsrv_connect($serverName, $connectionOptions);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
其中:
- your_servername
替换为您的MSSQL服务器名称 。
- your_database
替换为您要连接的数据库名称。
- your_username
替换为您的登录名,需要具有访问所需数据库的权限。
- your_password
替换为您的密码。
执行以上代码后,如果看到“Connection established”则说明您已经正常连接到MSSQL数据库。
示例1:连接位于127.0.0.1上名为test的MSSQL数据库
<?php
$serverName = "127.0.0.1";
$connectionOptions = array(
"Database" => "test",
"Uid" => "sa",
"PWD" => "password"
);
//Establishes a connection to MSSQL.
$conn = sqlsrv_connect($serverName, $connectionOptions);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
示例2:连接指定端口和实例名的MSSQL数据库
<?php
$serverName = "tcp:my-server,1433";
$connectionOptions = array(
"Database" => "test",
"Uid" => "sa",
"PWD" => "password"
);
//Establishes a connection to MSSQL.
$conn = sqlsrv_connect($serverName, $connectionOptions);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
注意:
- 示例2中的1433
是MSSQL服务器使用的端口号,my-server
是指定的MSSQL实例名称。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux编译mssql扩展使用php连接sqlserver2008的使用步骤 - Python技术站