通过XAMPP连接到SQL 2008 R2服务器

时间:2014-01-17 12:53:37

标签: php sql-server pdo sqlsrv

我正在开发一个必须通过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' ;;

1 个答案:

答案 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® SQL Server® 2012 Feature Pack

向下滚动,直至看到:

  

Microsoft®SQLServer®2012Native Client

下载并运行 X86软件包的安装程序http://go.microsoft.com/fwlink/?LinkID=239647&clcid=0x409