如何检索表的最后一行并将其插入另一个表

时间:2016-03-29 15:28:05

标签: php mysql

我想检索表A中添加的最后一行并将所有行插入表B.这两个表位于不同的数据库中。我的代码:

    $db=new PDO('mysql:host=localhost;dbname=service','root','');
    $db1=new PDO('mysql:host=localhost;dbname=service1','root','');


    $req = $db->query('SELECT * FROM `service`.`myusers` WHERE ID NOT IN (SELECT ID FROM `service1`.`myusers`)');
    $reqt = $req->fetch();
    $count = $req->rowCount();

   if($count){
      $db1->query('SET NAMES UTF8');
     $reqa=$db1->prepare('insert into myusers values(?,?,?,?,?,?)');
     $db1->query('SET NAMES UTF8');
     $reqa->bindParam(1,$reqt['ID']);
     $reqa->bindParam(2,$reqt['Prénom']);
     $reqa->bindParam(3,$reqt['LastName']);
     $reqa->bindParam(4,$reqt['dateDebut']);
     $reqa->bindParam(5,$reqt['identifient']);
     $reqa->bindParam(6,$reqt['fid']);
     $reqa->execute();
        return true;
    }else{
        return false;
    }

但是不起作用。

2 个答案:

答案 0 :(得分:1)

数据库本身没有ORDER行,因此如果您运行两次相同的查询,则可能会有不同的结果。

您需要包含ORDER BY <field> DESC clausule和LIMIT 1才能获得最后一条记录。

答案 1 :(得分:0)

也许您应该考虑使用复制。如果需要,您可以选择要复制的表格。

http://dev.mysql.com/doc/refman/5.0/en/replication-options-slave.html#option_mysqld_replicate-do-table