0

当这两个都位于我的本地计算机上时,我已经将 php 与 sql server 连接起来。

但是当我的 PHP 脚本在本地计算机上运行时,我需要连接 SQL Server Web 数据库。

我已经添加了扩展php_pdo_sqlsrv_54_ts.dllphp_sqlsrv_54_ts.dll在我的 PHP 扩展中。

为了与我的本地主机上的 SQL Server 连接,我还需要一个我已经安装的 SQL Server Native Client 驱动程序,但这对我与 SQL Server Web 数据库的连接是否也有任何关系?

当我运行 PHP 脚本时,脚本需要一些时间来执行,有时会出现错误:

SQLSTATE[08001]:[Microsoft][SQL Server Native Client 11.0]TCP Provider:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。1

我的连接脚本是

    $serverName = "***.db.*****.********.com";
    try{
      $conn = new PDO("sqlsrv:server=$serverName;Database=*****",   "***UserName***", "***PWD***");
      $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    }
    catch(Exception $e){ 
      die( print_r( $e->getMessage() ) ); 
    }
4

2 回答 2

0

$conn = new PDO("sqlsrv:server=$serverName;Database= * ", " DBNAME ", " PWD "); 而不是 DB name ,这里 username 应该来

于 2012-12-22T13:11:45.753 回答
0
  1. 在 $servername 上尝试提供服务器的 IP 地址。
  2. ping serverip通过发送类似示例的 ping 请求来确定服务器是否可访问ping 192.168.100.12

也试试这个..

    try {
    $hostname = "host";            //host
    $dbname = "dbname";            //db name
    $username = "user";            // username like 'sa'
    $pw = "pass";                // password for the user

    $dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");
    } catch (PDOException $e) {
    echo "Failed to get DB handle: " . $e->getMessage() . "\n";
    exit;
    }
    $stmt = $dbh->prepare("SELECT * FROM table");
    $stmt->execute();
    while ($row = $stmt->fetch()) {
    print_r($row);
    }
    unset($dbh); unset($stmt);

您可以在这里找到更多示例http://php.net/manual/en/ref.pdo-dblib.php

于 2012-12-22T13:14:27.110 回答