2016-03-29 8 views
-2

テーブル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; 
    } 

しかし、動作しません。

+1

「動作しません」と定義します。それは何をするためのものか? *どのように*失敗するのですか? – David

+0

エラー表示と挿入は行われませんが、選択作業は行われません。私は最後の行を取得することができます。 – Olfa

+1

あなたがそれらをチェックしていないので、エラーはありませんhttp://php.net/manual/en/pdo.error-handling.php - http://php.net/manual/en/function.error-reporting。 PHPの –

答えて

1

DBにはORDER個の行がありません。同じクエリを2回実行すると、結果が異なることがあります。

最後のレコードを取得するには、ORDER BY <field> DESC clausuleとLIMIT 1を含める必要があります。

関連する問題