要在Linux环境下使用PHP连接MSSQL数据库,需要安装mssql模块。下面是在Ubuntu系统下安装的详细教程:
安装freetds
- 安装依赖
shell
sudo apt-get install build-essential libssl-dev
- 下载freetds源码
shell
cd ~
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.21.tar.gz
tar -zxvf freetds-1.00.21.tar.gz
cd freetds-1.00.21
- 编译安装
shell
./configure --prefix=/usr/local/freetds
make && sudo make install
安装php-mssql
- 安装依赖
shell
sudo apt-get install php7.2-dev php-pear unixodbc-dev
- 下载php-mssql源码
shell
cd ~
wget https://github.com/Microsoft/msphpsql/archive/5.6.1.tar.gz -O msphpsql-5.6.1.tar.gz
tar -zxvf msphpsql-5.6.1.tar.gz
cd msphpsql-5.6.1/source
- 编译安装
shell
phpize
./configure --with-php-config=/usr/bin/php-config --with-mssql=/usr/local/freetds
make && sudo make install
- 配置php.ini
在/etc/php/7.2/cli/php.ini
中添加以下内容:
ini
extension=/usr/lib/php/20170718/mssql.so
- 重启php-fpm
shell
sudo systemctl restart php7.2-fpm
示例说明
- 连接MSSQL数据库
php
$dsn = "dblib:host=server_name_or_ip;dbname=db_name;charset=UTF-8";
$username = "username";
$password = "password";
$pdo = new PDO($dsn, $username, $password);
- 查询MSSQL数据
php
$sql = "SELECT * FROM table_name";
$statement = $pdo->query($sql);
if($statement !== false){
$rows = $statement->fetchAll(PDO::FETCH_ASSOC);
print_r($rows);
}else{
echo "query error!";
}
注意:连接MSSQL数据库需要使用PDO的dblib驱动,而不是mssql/mssql_*函数。另外,使用freetds时,需要在dsn中指定charset=UTF-8。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下php加装mssql模块的方法 - Python技术站