0

我在 Windows 机器上有一个 PHP 网站,想将数据直接插入到位于另一台机器上的 IIS 服务器上的 SQL 数据库中?

我应该遵循哪种方法?

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

IIS 位于 Windows Server 2008 R2 上。

非常感谢您的帮助。谢谢!

4

2 回答 2

4

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

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

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

于 2012-08-03T13:19:28.150 回答
1

我在 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

于 2012-08-03T13:30:11.643 回答