使用 Linux 上的 pdo_sqlsrv 连接 SQL Server 数据库 (linux pdo_sqlsrv)
随着企业信息化程度的不断提高,越来越多的企业将其业务系统、管理软件等全部转移到了数字化平台上。在这个数字化的时代,数据库无疑是企业不可或缺的一部分。而SQL Server作为具备完善数据管理功能的数据库应用软件,广泛应用于企业的数据库系统中。在Linux系统中使用pdo_sqlsrv来连接SQL Server数据库可以实现更好的跨平台访问,下面将简单介绍如何在Linux上使用pdo_sqlsrv连接SQL Server数据库。
一、安装 SQL Server 驱动
pdo_sqlsrv是PHP与Microsoft SQL Server通讯的一个驱动程序,使得PHP开发者可以使用PHP自身的数据库函数来操作SQL Server。安装pdo_sqlsrv需要下载 Microsoft Drivers for PHP for SQL Server ,下载地址为:https://www.microsoft.com/en-us/download/detls.aspx?id=20238。
将下载的文件复制到Linux服务器中,解压文件中的文件,用cp命令将php_pdo_sqlsrv_72_nts.so和php_sqlsrv_72_nts.so拷贝到Linux系统PHP扩展库目录下。
sudo cp /sqlsrv*/php_pdo_sqlsrv_72_nts.so /usr/lib/php/20230902/
sudo cp /sqlsrv*/php_sqlsrv_72_nts.so /usr/lib/php/20230902/
打开php.ini文件,添加扩展信息,使pdo_sqlsrv扩展生效。
sudo vim /etc/php/7.2/apache2/php.ini
在末尾添加以下两行,并保存退出。
extension=php_pdo_sqlsrv_72_nts.so
extension=php_sqlsrv_72_nts.so
二、建立数据库连接
完成上述步骤后,在PHP代码中建立连接即可使用pdo_sqlsrv操作SQL Server数据库。
$conn = new PDO(“sqlsrv:Server=$serverName;Database=$database”, $user, $pass);
其中$serverName为要连接的数据库服务器名称,$database为要连接的数据库名称,$user和$pass分别为连接数据库的用户名和密码。
三、操作SQL Server数据库
建立连接后,我们就可以使用pdo_sqlsrv操作SQL Server数据库了。例如我们要查询表中的数据:
$tsql = “SELECT Name FROM Production.Product WHERE ProductID = ?”;
$stmt = $conn->prepare($tsql);
$stmt->bindValue(1, 1, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo($row[‘Name’]);
其中,$tsql为要执行的SQL语句,$stmt 为预处理对象,bindValue设置指定位置的值,execute方法执行查询,fetch方法将查询记录转换成数组。
四、使用pdo_sqlsrv扩展遇到的问题
1. 出现pdo_sqlsrv.so文件找不到的错误
如果出现提示找不到pdo_sqlsrv.so文件的错误,检查配置文件的路径是否正确,可以运行命令查找pdo_sqlsrv.so的安装位置。
sudo find / -name ‘pdo_sqlsrv.so’
如果能正常地找到文件,并且并没有误删除PHP的扩展库目录下的文件,那么需要检查php.ini是否正确,或者重新编译PHP。
2. 连接不上 SQL Server 服务器
如果是Linux服务器在内网安全组里面,则需要开放相应的数据库端口,目前在SQL Server中打开1433端口来进行访问。