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

问题描述:

我正在研究必须通过PHP & PDO连接到MS SQL 2008 R2的Web应用程序。 我已成功安装了驱动程序,并与检查的话:通过XAMPP连接到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服务器的主机名(计算机名本身)=的SQL SERVER的SQLSERVER

名称(在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; 

这是我收到我的网页上的错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IMSSP]: This extension requires the Microsoft SQL Server 2012 Native Client ODBC Driver to communicate with SQL Server. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: go.microsoft.com/fwlink/?LinkId=163712';

+0

哪个驱动程序是你安装程序使用?官方微软的(http://www.microsoft.com/en-us/download/details.aspx?id=20098)?你是否收到任何错误信息,如果有,你可以将它们发布到你的问题中吗? – Kev

+0

对于为什么在生产IIS服务器上使用XAMPP也感到好奇,因为PHP是Windows 2008+上的头等公民。 – Kev

+0

这是我在我的页面上检测到的错误:致命错误:带有消息'SQLSTATE [IMSSP]的未捕获异常'PDOException':此扩展需要Microsoft SQL Server 2012本机客户端ODBC驱动程序与SQL Server进行通信。访问以下URL以下载适用于x86的Microsoft SQL Server 2012 Native Client ODBC驱动程序:http://go.microsoft.com/fwlink/?LinkId = 163712'。我使用Xampp的原因是因为在同一台服务器上已经有2个IIS运行的实例了+我对IIS的了解不多 – Raz3rt

线索来解决你的问题是错误消息:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IMSSP]: This extension requires the Microsoft SQL Server 2012 Native Client ODBC Driver to communicate with SQL Server. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: go.microsoft.com/fwlink/?LinkId=163712';

会看起来您没有安装SQL Server Native Client驱动程序。

浏览此网址:

Microsoft® SQL Server® 2012 Feature Pack

向下滚动,直到您看到:

Microsoft® SQL Server® 2012 Native Client

下载并运行该X86包http://go.microsoft.com/fwlink/?LinkID=239647&clcid=0x409

+0

这严重影响了我......我安装了本机客户端,现在出现以下错误:致命错误:带有消息'SQLSTATE [08001]'的未捕获异常'PDOException':[Microsoft] [SQL Server Native Client 11.0] TCP提供程序:(转换)由于连接被拒绝,无法连接到计算机。我认为我知道我的问题在哪里,我的sql服务器上启用了TCP/IP,但是在我的sql服务器上的TCP/IP属性中没有分配tcp端口。这就像有人要求我现在没有良好的知识驾驶飞机... – Raz3rt

+0

@ user3107003 - 这是一个SQL服务器在您的工作站上本地运行吗? – Kev

+0

@ user3107003 - 你有没有解决这个问题?我似乎已经解决了你的第一个问题,所以也许在盒子里打勾是值得的。你的其他问题实际上是一个单独的问题。 – Kev