2014-10-19 53 views
-1

我試圖同時連接到兩個不同的數據庫,我也用它來插入數據:需要幫助在兩個不同數據庫的兩個不同的表在PHP

$connect1 = mysql_connect("localhost","root",""); 
mysql_select_db("database1", $connect1); 
$res1 = mysql_query("query",$connect1); 

$connect2 = mysql_connect("localhost","root","",true); 
mysql_select_db("database2", $connect2); 
$res2 = mysql_query("query",$connect2); 

由於它是在https://stackoverflow.com/a/17788932/4157929

recomended

當我更新兩個數據庫中的兩個表值時,這工作正常。但是,當我嘗試將INSERT插入到相同的兩個數據庫的相同兩個表中時,我得到一個錯誤。該命令沒有被執行。而我得到的第二個數據庫MySQL命令即

0 - 

INSERT into products_description (products_id, language_id, products_name, products_description, products_url, products_viewed) VALUES ('12796', '1', 'COOKIES GINGERBREAD CHRISTMAS', 'COOKIES GINGERBREAD CHRISTMAS', '', '0') 

[TEP STOP] 

的$ CONNECT1和$ CONNECT2從包含在PHP中application_top php文件處理的下一個屏幕上。所以關閉第一個數據庫並打開第二個數據庫不是一個選項,因此我需要打開兩個數據庫連接。

我非常感謝任何幫助。

+0

請包括你的代碼,你期待的結果和你得到的錯誤。另見:http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – miken32 2014-10-19 02:40:08

回答

1

嘗試製作一個sql類(這是我用作基本的sql引擎)。看看這是否有助於插入:

<?php 
    class DBEngine 
     { 
      public $con; 
      public $errors; 
      public function __construct($db = "database1",$host="localhost",$user="db_userName",$pass="mypassword") 
       { 
        try { 
          $this->con = new PDO("mysql:host=$host;dbname=$db",$user,$pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING)); 
         } 
        catch (Exception $e) { 
          return 0; 
         } 
       } 

      // Simple fetch and return method 
      public function Fetch($_sql) 
       { 
        $query = $this->con->prepare($_sql); 
        $query->execute(); 
        $this->errors['fetch'][] = $query->errorInfo(); 

        if($query->rowCount() > 0) { 
          while($rows = $query->fetch(PDO::FETCH_ASSOC)) { 
            $array[] = $rows; 
           } 
         } 

        return (isset($array) && $array !== 0 && !empty($array))? $array: 0; 
       } 

      // Simple write to db method 
      public function Write($_sql) 
       { 
        $query = $this->con->prepare($_sql); 
        $query->execute(); 
        $this->errors['insert'][] = $query->errorInfo(); 
       } 
     } 

     $sql = "INSERT into products_description (products_id, language_id, products_name, products_description, products_url, products_viewed) VALUES ('12796', '1', 'COOKIES GINGERBREAD CHRISTMAS', 'COOKIES GINGERBREAD CHRISTMAS', '', '0')"; 

     // Insert 1 
     $query1 = new DBEngine(); 
     $query1->Write($sql); 
     // Insert 2 
     $query2 = new DBEngine("database2"); 
     $query2->Write($sql); ?> 
     <pre><?php 
     print_r($query1->errors); 
     print_r($query2->errors); ?> 
     </pre> 
相關問題