前端之家收集整理的这篇文章主要介绍了
如何使用PHP将一个SQL命令的返回值插入另一个表中,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个服务器托管两个不同的站点,两个独立的数据库.但是,有些数据需要共享 – 因此有一个CRON可以将数据从第一个站点复制到第二个站点.这两个站点曾经在同一台服务器上运行,但现在我们将它们分开,所以我试图修改PHP以便能够处理这个问题.
这是我遇到问题的代码:
$sql = "SELECT * FROM site1.events";
$events = MysqL_query($sql,$site1db);
$sql = "INSERT INTO site2.events SELECT * FROM $events";
$doIt = MysqL_query($sql,$site2db);
现在我知道SELECT * FROM site1.events是成功的,但它无法插入第二个站点,我没有看到任何类型的错误.我之前从未编写过PHP(这是一项遗留任务),所以如果它之前已被覆盖过,那么请指出正确的方向.
请注意,site2.events在这些命令之前被截断,因此不需要进行比较.
最佳答案
您将不得不逐行比较和复制.你现在试图做的事情是行不通的.如果
数据库在同一服务器上运行并且
数据库用户可以访问这两个
数据库,则可以使用INSERT IGNORE INTO site2.events(SELECT * FROM site1.events).不利的一面是,主键必须相同,否则您将错过数据.
一个更好的选择是简单地让site1在添加新事件时向site2做一个包含该事件的所有信息的回调.