PHP / MSSQL / PDO连接/驱动程序

时间:2018-03-23 12:50:37

标签: php sql-server pdo odbc

在尝试做我认为在PHP中非常简单的事情时,我有点噩梦。我没有任何PHP经验,所以我一直依赖文章/论坛等。

我想要做的就是查询MSSQL数据库,并在页面上输出。我遇到过几个错误消息告诉我的问题是驱动程序问题。

我的主机(a2hosting)告诉我他们安装了Microsoft ODBC Driver 13,因为11与服务器不兼容。他们告诉我pdo_sqlsrv已启用PHP 5.6我可以选择,所以我不应该有问题(通过Plesk我可以选择5.6.34,7.0.28,7.1.15,7.2.3 - 但无法查看phpinfo()。他们还告诉我在代码中包含驱动程序信息。

我无法找到任何特定于我的问题的片段或有用信息,所以我希望Stack Overflow世界可以提供帮助。 (我一直在尝试使用Microsoft和PHP手册中的示例,所以这可能有点遍布)

<html>
<head>
    <title>Page Title</title>
</head>
<body>

<?php 

$mssqldriver = '{ODBC Driver 13 for SQL Server}';

$hostname='my.ip';
$dbname='dbname';
$username='user';
$password='pass';

$conn = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, 
$password);

$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); 
$conn->setAttribute( PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 1 ); 

$query = 'select * from salesdata'; 

// simple query 
$stmt = $conn->query( $query ); 
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){ 
print_r( $row['agent'] ."\n" ); 
} 


$stmt = null; 
?>
    </body>
</html>

我得到的错误是:

  

致命错误:未捕获的异常&#39; PDOException&#39; with message&#39; SQLSTATE [IMSSP]:此扩展程序要求SQL Server的Microsoft ODBC驱动程序11与SQL Server通信。访问以下URL以下载适用于x86的SQL Server的ODBC驱动程序11:http://go.microsoft.com/fwlink/?LinkId=163712&#39;在C:\ Inetpub \ vhosts \ o2live.co.uk \ httpdocs \ testfile10.php:16堆栈跟踪:#0 C:\ Inetpub \ vhosts \ o2live.co.uk \ httpdocs \ testfile10.php(16):PDO- &gt; __ construct(&#39; sqlsrv:Server = 6 ...&#39;,&#39;用户名&#39;,&#39;密码&#39;)#1 {main}在C:\ Inetpub中抛出第16行的\ vhosts \ o2live.co.uk \ httpdocs \ testfile10.php

只是抬头我有一个共享主机帐户,所以我无法更改驱动程序/软件等。

很高兴使用一种完全不同的方法,如果有的话,我已尝试了几种,但这个似乎是我的主人的建议

0 个答案:

没有答案
相关问题