所以我正在编写一些代码,以便我可以访问Microsft SQL Server。我正在编写的代码是在Centos 7机器上。我已经安装了php mysql和mssql包,但是当我运行
时echo "<pre>", print_r(PDO::getAvailableDrivers()), "</pre>";
我得到以下输出:
Array
(
[0] => mysql
[1] => pgsql
[2] => sqlite
)
我重新启动了灯泡,仍然得到了相同的结果。
我还编辑了php.ini
以包含extension=php_mssql.so
,并重新启动了lampp并仍然获得了相同的输出。
当我运行pdo脚本时:
try
{
$con = new PDO("dblib:host=".$db_addr.";dbname=".$db_name.";charset=utf8", '".$db_usr."', '".$db_pass."');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "ERROR: ". $e->getMessage();
die();
}
我总是得到:
ERROR: could not find driver
我重申需要在php.ini
中配置,但输出的驱动程序是从php.ini
注释掉的,因此我很困惑。
有人可以指导我正确的方向吗?
编辑:我在here跟随了@ jap1968的回答,但我被困在了现在的位置。答案 0 :(得分:1)
我发现为什么这样做不起作用。我用xampp安装了我的灯堆。所以我无法获得额外的模块。
为了解决这个问题,我重新安装了一个apache服务器(httpd),mysql(MariaDB)和php,然后我设法添加了我需要的驱动程序,在here中跟随@ jap1968的答案。
安装驱动程序后,CentOS仅使用控制台启用MS SQL Server连接,默认情况下。因此,当我使用浏览器访问我的脚本时,我收到一条错误消息,指出服务器不可用。
要通过浏览器进行访问(需要使用root权限,也可能需要几秒钟):
# setsebool -P httpd_can_network_connect=1