2017-03-28 40 views
0

選擇一個數據庫中的值,並更新到另一個數據庫與同一ID: 在那裏我得到的錯誤是 試圖讓非對象 我怎麼能實現它的屬性有任何解決方案?從一個數據庫和更新到另一個相匹配的行選擇

$servername = "localhost"; 
    $username = "root"; 
    $password = "pass"; 
    $dbname = "db1"; 
    $dbname2="db2"; 


    $conn = new mysqli($servername, $username, $password, $dbname); 

    if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
    } 


    $conn2 = new mysqli($servername, $username, $password, $dbname2); 

    if ($conn2->connect_error) { 
die("Connection failed: " . $conn2->connect_error); 
    } 

    $sql = "SELECT * FROM affiliates"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
    //output data of each row 

     while($row = $result->fetch_assoc()) { 
      echo "from db1 id: " . $row["id"]. "publish " .$row["publishinsuppliercontants"]. "<br>"; 

     $sql2 = "UPDATE a1_affilates_cstm SET publish_in_supplier_contacts_c=".$row["publishinsuppliercontants"]." WHERE id_c=".$row["id"].""; 
    $result2 = $conn2->query($sql2); 

    $sql2 = "SELECT * FROM a1_affilates_cstm WHERE id_c = ". $row["id"].""; 

    $result2=mysqli_query($conn2,$sql2) or die mysqli_error($conn2); 
    $row1 = mysqli_fetch_array($result2); 
    ///check whether inserted ... 
      echo "from db2 id: " . $row1["id_c"]. " - publish: ".row1["publish_in_supplier_contacts_c"]. " <br>"; 

     } 
    } else { 
     echo "0 results"; 
    } 
+0

這意味着某個地方你想獲得一些對象,但不能用於例如'$ result-> fetch_assoc()' – webDev

回答

0

它看起來像你沒有得到結果對象。 SELECT查詢是否成功?

您需要在對結果對象進行操作之前檢查選擇查詢狀態/結果。

例如你的情況:

$sql = "SELECT * FROM affiliates"; 
if ($result = $conn->query($sql)) { 
    if ($result->num_rows > 0) { 
    ... some logic ... 

PHP mysqli manual

「失敗時返回FALSE對於成功的SELECT,SHOW,描述或解釋查詢mysqli_query()將返回一個mysqli_result對象。其他成功的查詢mysqli_query()將返回TRUE。「

相關問題