我有两个不同的网站。我想要做的是当用户注册并更新站点2的数据库中的表时,自动运行一个脚本,该脚本发送插入站点1中数据库的一些数据,以便在站点2中自动创建一个帐户使用相同的细节。
我正处于尝试创建将更新数据库的查询的阶段。我是自制型,所以不知道我在做什么。从某个地方获得此查询但无法使其工作。有谁能说出它有什么问题?它没有执行查询。
谢谢!
欧仁妮
<?php
$host = "localhost"; // Host name
$username = "----"; // Mysql username
$password = "----"; // Mysql password
$db_name1 = "------"; // Database name
$db_name2 = "-----"; // Database name
$tbl_name1 = "-----"; // Table name
$tbl_name2 = "---"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name1")or die("cannot select DB");
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name2")or die("cannot select DB");
$query = "USE $db_name2
UPDATE $db_name2.dbo.$tbl_name2
SET email=d2.email FROM $db_name1.dbo.$tbl_name1 d2
WHERE d2.uid = $tbl_name1.uid";
$result = mysql_query($query) or die ("could't execute query.");
?>
答案 0 :(得分:2)
<?php
$host = "localhost"; // Host name
$username = "----"; // Mysql username
$password = "----"; // Mysql password
$db_name1 = "------"; // Database name
$db_name2 = "-----"; // Database name
$tbl_name1 = "-----"; // Table name
$tbl_name2 = "---"; // Table name
$conn = mysql_connect($host, $username, $password);
mysql_select_db($db_name1, $conn) or die("cannot select DB");
mysql_select_db($db_name2, $conn) or die("cannot select DB");;
$query1 = "SELECT * FROM `" . $db_name1.$tb1_name1 . "` ";
$query2 = "SELECT * FROM `" . $db_name2.$tb1_name2 . "` ";
您可以从两个数据库中获取上述查询的数据,如下所示
$result1 = mysql_query($query1);
while($row = mysql_fetch_assoc($result1)) {
$data1[] = $row;
}
$result2 = mysql_query($query2);
while($row = mysql_fetch_assoc($result2)) {
$data2[] = $row;
}
print_r($data1);
print_r($data2);
?>
建议:尝试转换为mysqli
或PDO
,因为mysql
现已弃用。
答案 1 :(得分:0)
回顾mysql_connect
的文档:
成功时返回MySQL链接标识符,失败时返回FALSE。
...以及mysql_query
的第二个参数的文档:
MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就好像没有参数调用mysql_connect()一样。如果未找到或建立连接,则会生成E_WARNING级别错误。
......应该解决你的问题。例如:
$link1 = mysql_connect( ... ); // For db 1.
$link2 = mysql_connect( ... ); // For db 2.
$result1 = mysql_query( "some query for db 1", $link1 );
$result2 = mysql_query( "some query for db 2", $link2 );
答案 2 :(得分:0)
那么,
首先,您没有连接到两个不同的数据库,而是在同一个数据库中使用两个不同的模式。所以只应该使用mysql_connect。
另外,如果您使用完全限定名来访问表,则不需要调用mysql_select_db,也不需要调用'use db_name'mysql命令。
您的查询字符串错误。在USE $ db_name2之后,你应该有一个分号,并且更新句子不正确。
代码可能是这样的:
的mysql_connect(...) $ query =“update $ db2。$ table2,$ db1。$ table1