Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自动同步两个mysql表,但出现异常_Php_Mysql_Cron_Phpmyadmin - Fatal编程技术网

Php 自动同步两个mysql表,但出现异常

Php 自动同步两个mysql表,但出现异常,php,mysql,cron,phpmyadmin,Php,Mysql,Cron,Phpmyadmin,我有两个脚本的sql表,我需要与另一个同步,这可以通过从一行中删除php cron(这是我的计划)来完成 表1表2 第1行第1行 第2排第2排 第3行不同步第3行 同一服务器上的两个数据库 同一个用户对这两个都有完全的权限 我正在寻找一个php代码来通过cpanel cron实现这一点 事后想一想,是否最好将两者合并,以便使用新数据进行更新 问题是,在上面的示例中,我需要在两个数据库上都不更改第3行 我是非常noob,所以请友好的lol-Thx提前 更新* 我应该学会如何更好地解释 这两个数据库

我有两个脚本的sql表,我需要与另一个同步,这可以通过从一行中删除php cron(这是我的计划)来完成

表1表2

第1行第1行

第2排第2排

第3行不同步第3行

同一服务器上的两个数据库 同一个用户对这两个都有完全的权限

我正在寻找一个php代码来通过cpanel cron实现这一点

事后想一想,是否最好将两者合并,以便使用新数据进行更新

问题是,在上面的示例中,我需要在两个数据库上都不更改第3行

我是非常noob,所以请友好的lol-Thx提前

更新*

我应该学会如何更好地解释

这两个数据库都是站点的控制面板,其中一个表行中有系统url,因此如果我共享数据库,“站点2”链接引用回“站点1”,这对我来说是一个复杂的问题,因为我对此非常陌生

我需要的是保持两个数据库都是最新的,除了这一行之外,这一行对于两个数据库都是不同的


我还没有尝试过任何东西,因为我不知道从哪里开始:(lol

您不必使用cron。当前版本中的MySQL支持
触发器
事件

您可以使用触发器将数据复制到另一个表。该复制(或任何其他操作)可能由某些事件触发(如在表中插入、更新或删除)。
TRIGGER
可以运行任何查询或任何PL/SQL代码

另一个选项是
事件
。这类似于MySQL中内置的内部任务调度程序。它也可以运行查询或任何PL/SQL代码,但它是由系统时间触发的(如Linux Cron)。与Cron相比,它有许多优点

PL/SQL是过程SQL,包含循环、变量等

如果你认为自己是“noob”——我有解药给你。读一些关于MySQL的书,或者如果你懒惰——看一些教程(,)

这里没有人会为您编写代码。我们只能修复一个bug,提供建议等:)

编辑

事件示例:

-- this is comment in SQL language (line starts with --)
CREATE EVENT event_daily_copy_something
    ON SCHEDULE
      EVERY 1 DAY
    COMMENT 'This text will appear in MySQL Workbench as description of event'
    DO
      BEGIN
        INSERT INTO your_db_name.target_table_name(id, field)
          SELECT id, something
            FROM your_db_name.source_table_name
            WHERE id = 3;
      END
表的同步相当复杂。我想你们在这种情况下需要做一些手术

  • 检查新行并复制
  • 检查删除的行并在“复制”表中删除它们
  • 检查更改的行(在这里,源表上的触发器将非常有用,因为触发器“知道”编辑的行,您可以访问表1中的新字段值并使用它们更新表2)

  • 所以说清楚,您正在寻找一种单向同步,其中
    数据库2
    始终覆盖
    数据库1
    ?从来没有相反的方法?那你试过什么?确定哪些行不需要同步的实际标准是什么?当您说“synch”时,您是指一个表中的行或更新到另一个表中的行(即一个表是权威的),还是指有条件的双向同步?保留两个数据库或两个表?如果数据库-在新的MySQL版本中有一些复制功能。请参阅帮助:是否有任何脚本或教程可供在线使用?我已经拖延了很长时间了,我是afrad,我知道的还不足以让它发挥作用,谢谢,但是有没有一个链接可以让你分享我的问题(或挑战)的信息?@RickNash你需要了解MySQL的基础知识。在这些链接下,您可以找到一些MySQL教程。我建议从新波士顿开始。我会在一分钟内将事件示例添加到我的答案中。@RickNash我不知道你知道什么。如果你真的是个彻头彻尾的傻瓜——从第1课开始,别忘了做一些实验和练习。注:请看最后答案中添加的链接。如果你想放弃这样的事情,你将成为商人,而不是程序员!学习,永不放弃!:)