2016-09-24 16 views
0

データベース内のテーブルからデータを選択し、別のデータベースの別のテーブルに挿入する必要がありますが、動作していません。コードを修正してくださいあなたの回答を教えてください。データベースから選択し、PHP-MySQLの別のデータベースに挿入

<?php 
$log1 = "taxicom"; 
$pwd1 = "************"; 
$db1 = "ussd";  
global $mysqli1; 

$log2 = "Taxicom"; 
$pwd2 = "******"; 
$db2 = "suitecrm"; 
global $mysqli2; 

$mysqli1 = mysqli_connect("localhost", $log1, $pwd1, $db1); 
$mysqli2 = mysqli_connect("localhost", $log2, $pwd2, $db2); 

$quer = mysqli_query($mysqli1 ,"SELECT DISTINCT numdest,id,operateur,mont_pay FROM rapport GROUP BY numdest ORDER BY id "); 


    while ($data = mysql_fetch_object($quer)){ 
     $variable1 = $data['numdest']; 
     $variable2 = $data['id']; 
     $variable3 = $data['operateur']; 
     $variable4 = $data['mont_pay'];  

    $quer2=mysqli_query($mysqli2,"INSERT INTO prospects (id_client_source,num_tel_dest,operateur,montant) VALUES(' $variable2',' $variable1',' $variable3',' $variable4')"); 
if($quer){ 
    echo"Inséré <br>"; 
    }else{ 
     echo "non inséré <br>"; 
    }} 
var_dump($quer2); 

set_time_limit(500); 

?> 
+0

を見て挿入しない場合ではない右
はmsqli_fetch_objectを使用してみてくださいと、whileループ内で、テストのないQUERための$ quer2のためにと。 ..? – Chris

+0

はい、データは挿入されません。 – saida

+2

whileループでは、$ data = mysql_fetch_object($ quer)の代わりに$ data = mysqli_fetch_object($ quer)を使用してください。 – Martijn

答えて

0
あなたが好きな、関連するデータベース名とテーブルを前に置くことにより、1つのクエリでの操作を行うことができるかもしれない

:あなたは、単一のクエリでこれを行うことができ、私のSQLで

insert into `suitecrm`.`prospects` ( 
    `id_client_source`, 
    `num_tel_dest`, 
    `operateur`, 
    `montant` 
) 
select distinct `id`, `numdest`, `operateur`, `mont_pay` 
    from `ussd`.`rapport` 
    group by numdest 
    order by id; 
+0

で修正してくださいが、私は2つのデータベースがあります! – saida

+0

上記のテーブル名の前にdb名が付けられます.1つのdbは 'ussd'と呼ばれ、もう1つは' suitecrm'〜おそらく同じサーバにありますか? – RamRaider

+0

はい、2つのデータベースが同じサーバーにあります – saida

0

あなたは集団functioを使用しないので、グループ句を使用しないでください。 また、disctintも使用してください。 と私は役に立たないの挿入のための発注、ユーザーの$ LOG2は、ユーザーが持っている場合は、単一のmysqli_query

$quer2=mysqli_query($mysqli2, 
    "INSERT INTO database1.prospects (id_client_source,num_tel_dest,operateur,montant) 
    SELECT DISTINCT id, numdest,operateur,mont_pay 
    FROM database2.rapport;"); 

を使用することができDB1から選択のための権利を持っている場合は、句

順を省略することができますので、あなたが「働いていない」、エラー、無挿入データに展開することができ、エラー

while ($data = mysqli_fetch_object($quer)){ 
     $variable1 = $data['numdest']; 
     $variable2 = $data['id']; 
     $variable3 = $data['operateur']; 
     $variable4 = $data['mont_pay'];  

    $quer2 = mysqli_query($mysqli2,"INSERT INTO prospects (id_client_source,num_tel_dest,operateur,montant) VALUES(' $variable2',' $variable1',' $variable3',' $variable4')"); 
if($quer2){ 
    echo"Inséré <br>"; 
    }else{ 
     echo "non inséré <br>"; 
     die(mysqli_error($mysqli2)); 
    } 
} 


var_dump($quer2); 

set_time_limit(500); 
+0

私は2つのデータベースを持っていて、私はmysqlで作業します – saida

+0

2つのデータベースが同じサーバーにある場合、同じ方法でクエリを使用できます..回答は – scaisEdge

+0

、私はmysqli 1と2を管理しますか? – saida

関連する問題