Php 从两个不同数据库中的表更新数据
我有两个不同的网站。我想做的是,当用户注册并更新站点2数据库中的表时,自动运行一个脚本,将插入到站点1数据库中的一些数据发送到该脚本,以便使用相同的详细信息在站点2中自动创建一个帐户 我正在尝试创建一个将更新数据库的查询。我是白手起家的人,所以不太清楚我在做什么。从某处收到此查询,但无法使其工作。有人能告诉我它出了什么问题吗?它没有执行查询 谢谢 尤金妮Php 从两个不同数据库中的表更新数据,php,mysql,Php,Mysql,我有两个不同的网站。我想做的是,当用户注册并更新站点2数据库中的表时,自动运行一个脚本,将插入到站点1数据库中的一些数据发送到该脚本,以便使用相同的详细信息在站点2中自动创建一个帐户 我正在尝试创建一个将更新数据库的查询。我是白手起家的人,所以不太清楚我在做什么。从某处收到此查询,但无法使其工作。有人能告诉我它出了什么问题吗?它没有执行查询 谢谢 尤金妮 <?php $host = "localhost"; // Host name $username = "----"
<?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.");
?>
回想一下mysql\u connect的文档:
成功时返回MySQL链接标识符,失败时返回FALSE
。。。以及mysql\u查询的第二个参数的文档:
MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果找不到这样的链接,它将尝试创建一个链接,就像调用mysql_connect()时没有参数一样。如果未找到或建立连接,将生成E_警告级别错误
。。。应该能解决你的问题。例如:
$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 );
那么
首先,您没有连接到两个不同的数据库,而是在同一个数据库中使用两个不同的模式。因此,只应使用mysql_连接
此外,如果使用完全限定名访问表,则不需要调用mysql\u select\u db,也不需要调用“use db\u name”mysql命令
您的查询字符串错误。在使用$db_name2之后,应该有一个分号,更新语句不正确
代码可能是这样的:
mysql_connect(…)
$query=“update$db2.$table2,$db1.$table1
<?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 . "` ";
建议:尝试切换到mysqli
或PDO
,因为mysql
现在已经贬值了。你有什么错误吗?请看这个问题:嗨,是的:无法执行查询。嗨,谢谢,但说到这个问题,我真的是个傻瓜。我几乎可以复制和粘贴代码,并做一些最小的调整调整但如果你带我离开那里,我就迷路了。如果我能得到我需要的代码,以便粘贴和尝试,那将非常感谢。谢谢!嗨,谢谢你的回复。与上面的评论相同。在编码方面,我是一个完全的傻瓜。我可以复制、粘贴并尝试的东西将非常完美:)
$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);
?>