PHP连接到不同机器上的SQL服务器


PHP connect to SQL server on different machines

我在Windows计算机上有一个PHP网站,是否要将数据直接插入到另一台计算机上IIS服务器上的SQL数据库?

我应该采取哪种方法?

**我最初的想法是转移到IIS托管的PHP页面,该页面执行查询,然后重定向回我的网站。然而,我更喜欢更简单、不那么复杂的方法。

IIS位于Windows Server 2008 R2上。

非常感谢你的帮助。谢谢

如果您使用PHP,您可以使用PDO:打开与另一台机器上的数据库的连接

$remotedb = new PDO("*dbtype*:dbname=*dbname*;host=*addressOfOtherMachine*", $user, $password);

http://www.php.net/manual/en/class.pdo.php

我在PHP中使用SQLSRV连接到具有2008 R2的IIS6机器上的数据库。我认为远程机器必须允许远程连接,如果不允许,则需要通过设置打开。以下是我的连接字符串:

<?php
    /* NEW CONNECTION FOR SQLSRV DRIVER (for MSSQL access) */
    $uid = "username";
    $pwd = "password";
    $DB = "database_name";
    $serverName = "ip_address_of_remote_server (example: 192.168.0.25)";
    $connectionInfo = array("UID" => $uid, "PWD" => $pwd, "Database"=> $DB, "ReturnDatesAsStrings" => true);
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
?>

下面是一个使用连接的参数化插入查询示例:

<?php
    $p1 = "values passed from a form";
    $p2 = "values passed from a form";
    $p3 = "values passed from a form";
    $params = array(
        array(&$p1, null, null, SQLSRV_SQLTYPE_VARCHAR(50)),
        array(&$p2, null, null, SQLSRV_SQLTYPE_DATETIME),
        array(&$p3, null, null, SQLSRV_SQLTYPE_VARCHAR(50))
    );
    $sql = "INSERT INTO database_name (column1, column2, column3) values (?,?,?)";
    $stmt = sqlsrv_prepare($conn, $sql, $params);
    if( !$stmt ) { die( print_r( sqlsrv_errors(), true)); } 
    if(sqlsrv_execute( $stmt ) === false ) { die( print_r( sqlsrv_errors(), true)); } 
?>

有关更多SQLSRV参数,请访问http://msdn.microsoft.com/en-us/library/cc626305.aspx