1.准备知识在ubuntu实现php访问mssql,数据库版本SQL Server 2008R2。注意所安装驱动与php版本的对方关系。官方文档:微软官方方法:https://www.microsoft.com/en-us/sql-server/developer-get-started/php/ubuntu php官方sqlsrv版本对应关系:https://pecl.php.net/package/pdo_sqlsrv/5.8.0 从以上可知及php7.2以下,只能安装sqlsrv-5.8.0。 参考https://serverok.in/install-php-drivers-for-microsoft-sql-server-on-ubuntu-php-7-2 以下操作是php7.2,但php7.4安装失败。若是php8.0环境,需要安装最新的sqlsrv即可。 2.apt安装php7.2环境apt install php7.2-dev 3.Instal php modules with pcelpecl install sqlsrv-5.8.0 此时报错: #include <sql.h> compilation terminated. Makefile:194: recipe for target 'conn.lo' failed make: *** [conn.lo] Error 1 ERROR: `make' failed 4.修复错误apt-get install unixodbc-dev 5.重新安装sqlsrvpecl install pdo_sqlsrv-5.8.0 此时仍报错,可按提示更新源:sudo pecl channel-update pecl.php.net 6.用root账号保存配置printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.2/mods-available/sqlsrv.ini printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.2/mods-available/pdo_sqlsrv.ini 7.phpenmodphpenmod -v 7.2 sqlsrv pdo_sqlsrv 若是php8.0环境,注意换成8.0。此时在phpinfo()中,会显示出pdo_sqlsrv已启用及版本号。 但php脚本有错误,如下: This extension requires the Microsoft ODBC Driver for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver for SQL Server for x64 8.用root账号修复如下curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - 接着,其他操作系统版本可参考微软官方 curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list 9.更新系统apt-get update 10.安装odbcapt-get install -y msodbcsql17 若是php8版本,仍是msodbcsql17,至此php脚本可以访问mssql数据库,其他可选的安装有 apt-get install -y mssql-tools echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc apt-get install -y unixodbc-dev php脚本样例: try{
$conn = new PDO("sqlsrv:server=120.77.23.188;database=HWMS","HMS","Gold2011Valley");
var_dump($conn);
$sql = "select * from StoreIn";
$res = $conn->query($sql);
var_dump($res->fetch());
}
catch(Exception $e){
var_dump($e);
}
|





