将数据插入同一实例和同一用户的不同数据库的两个表中

问题描述:

我目前在phpfox_user和phpfox_user_custom中的brokers3_finalmain数据库中插入以下数据,但现在我想要在其他数据库移动设备中同时插入数据full_name和country_iso。将数据插入同一实例和同一用户的不同数据库的两个表中

public function delete_mobile($data) 
{ 
    $params = array(':mobile' => $data); 
    $sql = "Delete FROM mobile where mobile=:mobile"; 
    $stmt = parent::query($sql, $params); 

} 

public function update_profile($data) 
{ 
    $sql = 'UPDATE phpfox_user set full_name=:full_name, email=:email where user_id=:user_id'; 
    $params =(array(
     ':full_name' => $data['full_name'], 
     ':email' => $data['email'], 
     ':user_id' => $data['user_id']    
    )); 
    //print_array($params); 

    parent::query($sql, $params, '', 'main') or die(parent::$dbh->errorInfo()); 
} 

public function register_user($data) 
{ 
    //print_r($data); 
    //$data=$data[0]; 
    //print_r($data); 
    $params = array(':email' => $data['email'], ':cf_mobile' => $data['mobile']); 
    $sql = "SELECT * FROM phpfox_user, phpfox_user_custom where phpfox_user.email=:email AND phpfox_user_custom.cf_mobile=:cf_mobile"; 
    $stmt = parent::query($sql, $params, '', 'main'); 
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : 
     $res=$row; 
    endwhile; 

    if(count($res)>=1) 
    { 
     $result['status']='fail'; 
     $result['message']='user already exits'; 
     $result['user_id']=$res['user_id']; 
    } else { 
     $pass=md5(md5($data['password']).md5('78>')); 
     $sql = 'INSERT INTO phpfox_user (full_name, email, password, password_salt, user_group_id, country_iso) 
     VALUES(:full_name, :email, :password, :password_salt, :user_group_id, :country_iso)'; 

     $params =(array(
      ':full_name' => $data['full_name'], 
      ':email' => $data['email'], 
      ':password' => $pass, 
      ':password_salt' => '"Q>', 
      ':user_group_id' => $data['user_group_id'], 
      ':country_iso' => $data['location']    
     )); 
     //print_array($params); 

     parent::query($sql, $params, '', 'main') or die(parent::$dbh->errorInfo()); 
     # Affected Rows? 
     $user_id=parent::$dbh->lastInsertId(); 

     $sql = 'INSERT INTO phpfox_user_custom (user_id, cf_mobile) 
     VALUES(:user_id, :cf_mobile)'; 
     $params =(array(
      ':user_id' => $user_id, 
      ':cf_mobile' => $data['mobile'] 
     )); 
     //print_array($params); 

     parent::query($sql, $params, '', 'main') or die(parent::$dbh->errorInfo()); 
     # Affected Rows? 
     //return parent::$dbh->lastInsertId(); 
     //return $user_id; 
     $result['status']='success'; 
     $result['message']='Registeration successfully'; 
     $result['user_id']=$user_id; 
    } 
    return $result; 
} 
+0

你需要管理你的''parent''类的连接,当你调用查询,您将定义使用何种连接 – cmnardi

+1

听起来像一个伟大的工程,让我们知道,如果你有一个问题!尽管如果2个数据库驻留在同一个mysql实例上,那么您可以将不在默认数据库中的表称为databasename.tablename。如果数据库驻留在不同的mysql实例中,则需要为它们创建单独的连接。 – Shadow

如果这两个数据库驻留在同一MySQL服务器和您建立不采摘数据库的连接,只是把名称的数据库中的表名的面前就像

INSERT INTO myDBname.myTableName (myKey) VALUES (:myKey); 

如果你有一个连接到一个数据库,您可以在插入前更改它。

$pdoConnetion->select_db('myDBName'); 
INSERT INTO myTableName (myKey) VALUES (:myKey); 
+0

'INSERT INTO booking.mobile(full_name,country_iso) VALUES(:full_name,:country_iso)'; \t不能工作 –

+0

建立PDO连接时,您已经可以选择一个数据库。 您可以直接连接到服务器而无需选择或在插入之前对其进行更改。我会相应地编辑我的答案。 – Max

+0

对我不起作用请你插入上面的代码并更新,也许我错过了一些东西,我也在我的代码中添加了一些移动表中的函数来更好地解释脚本是如何编码的 –