从数据库中选择并插入到不同的数据库在PHP-MySQL

从数据库中选择并插入到不同的数据库在PHP-MySQL

问题描述:

我必须从数据库中的表中选择数据,并将它们插入另一个数据库中的其他数据库中,但它不工作。请您纠正代码并让我知道你的回应?从数据库中选择并插入到不同的数据库在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

插入看看你能在“不工作”,错误,没有插入的数据扩展。 ..? – Chris

+0

是的,数据未被插入。 – saida

+2

在你的while循环中,使用$ data = mysqli_fetch_object($ quer)而不是$ data = mysql_fetch_object($ quer)。 – Martijn

你也许可以做到在一个单一的查询操作通过与像相关的数据库名称前缀表:

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

,但我有两个数据库! – saida

+0

db名称前面加上了表名 - 一个db叫做'ussd',另一个''suitecrm'〜大概在同一个服务器上? – RamRaider

+0

是yhe两个数据库在同一台服务器上 – saida

随着我的SQL,您可以使用单个查询做到这一点

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

而且您不使用聚合函数,因此您不需要使用子句组012条款 此外,您也使用disctint。 和订购一个一个插入我无用,所以你可以通过条款

省略顺序如果您的用户$ LOG2有选择从DB1您可以使用一个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;"); 

如果用户有正确的不正确的
尝试使用msqli_fetch_object和,而循环中,测试quer2 $不是QUER,如果不是在错误

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

我有两个数据库,我使用mysql – saida

+0

如果两个数据库在同一台服务器上,您可以使用相同的方式查询..我已更新答案 – scaisEdge

+0

以及如何我将管理mysqli 1和2? – saida