将本地主机上的Php脚本连接到在线sql Server数据库

时间:2012-12-22 13:04:05

标签: php sql-server

我将php与sql server连接起来,当它们都在我的本地计算机上时。

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

我在PHP扩展中添加了扩展名php_pdo_sqlsrv_54_ts.dllphp_sqlsrv_54_ts.dll

为了在我的本地主机上连接SQL Server,我还需要一个已安装的SQL Server Native Client驱动程序,但这对我与SQL Server Web数据库的连接是否也必须做什么?

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

  

SQLSTATE [08001]:[Microsoft] [SQL Server Native Client 11.0] TCP   提供程序:连接尝试失败,因为连接方已执行   一段时间后没有正确回应,或建立连接   失败,因为连接的主机无法响应。 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() ) ); 
    }

2 个答案:

答案 0 :(得分:0)

$ conn =新PDO(“sqlsrv:server = $ serverName; Database = * ”,“ DBNAME ”,“ PWD “);  而不是数据库名称,这里的用户名应该来

答案 1 :(得分:0)

  1. 在$ servername上尝试提供服务器的IP地址。
  2. 通过发送ping请求确定服务器是否可访问 例如ping serverip示例ping 192.168.100.12
  3. 试试这个..

        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