我正在开发一个必须通过PHP和Linux连接的Web应用程序。 PDO到MS SQL 2008 R2。 我已经成功安装了驱动程序并检查了它:
var_dump(PDO::getAvailableDrivers());
我使用两台Windows服务器(均为2008),一台用于SQL数据库,另一台用于XAMPP。我们有大约八个程序从其他服务器连接到SQL服务器,所以我的猜测是连接问题不是SQL服务器本身。
这里有一个非常简单的示例,可以从应用程序插入到MS SQL数据库表中:
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$company = $_POST['company'];
$name = $_POST['name'];
$firstname = $_POST['firstname'];
$number = $_POST['number'];
$host = $_POST['host'];
$licenseplate = $_POST['plate'];
$reason = $_POST['site'];
$timein = date('Y-m-d H:i:s');
$db = new PDO("sqlsrv:Server=MSSQLSERVER2,1433;Database=visitormod", "**************", "******************"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO visitors (visitor_name, visitor_firstname, visitor_company, visitor_number, visitor_plate, visitor_in) VALUES (:lname, :fname, :company, :pnumber, :lplate, :tin)";
$q = $db->prepare($sql);
$q->execute(array(':lname'=>$name, ':fname'=>$firstname, ':company'=>$company, ':pnumber'=>$number, ':lplate'=>$licenseplate, ':tin'=>$timein));
以下是一些额外信息:
SQL服务器的主机名(computername本身)= SQLSERVER
SQL SERVER的名称(在SQL Server Management Studio下=我连接的位置)= MSSQLSERVER2
以下是我的问题:
我无法成功连接到数据库,我的猜测与此相关
$db = new PDO("sqlsrv:Server=MSSQLSERVER2,1433;Database=visitormod", "**************", "******************");
这里我使用Server=MSSQLSERVER2
但这只是SQL Server管理工作室中服务器的名称。我没有指向服务器本身也许这是我的问题,我需要一个ODBC连接?我在互联网上阅读了Linux环境中的必要内容吗?
有人能帮忙解释一下我做错了什么吗?我需要额外连接吗?
我想问的最后一个问题是,我在哪里可以看到连接到哪个端口号?
即
new PDO("sqlsrv:Server=MSSQLSERVER2,1433;
这是我在页面上收到的错误:
致命错误:未捕获的异常' PDOException'与消息 ' SQLSTATE [IMSSP]:此扩展程序需要Microsoft SQL Server 2012 Native Client ODBC驱动程序与SQL Server通信。访问 以下URL下载Microsoft SQL Server 2012 Native 适用于x86的客户端ODBC驱动程序:go.microsoft.com/fwlink/?LinkId=163712' ;;
答案 0 :(得分:1)
解决问题的线索在错误消息中:
致命错误:带有消息的未捕获异常'PDOException' 'SQLSTATE [IMSSP]:此扩展程序需要Microsoft SQL Server 2012 Native Client ODBC驱动程序与SQL Server通信。访问 以下URL下载Microsoft SQL Server 2012 Native 适用于x86的客户端ODBC驱动程序:go.microsoft.com/fwlink/?LinkId=163712';
您似乎没有安装SQL Server Native Client驱动程序。
浏览到以下网址:
向下滚动,直至看到:
Microsoft®SQLServer®2012Native Client
下载并运行 X86软件包的安装程序(http://go.microsoft.com/fwlink/?LinkID=239647&clcid=0x409)