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