2016-10-26 51 views
-2

更新表我不能能更新我的用戶從不同的大學表,它存在於另一個主要數據庫。但我查詢MySQL的成功運行,但是當我試圖使用PHP執行查詢它不能能夠從大學數據庫廣東話能夠從不同的數據庫表的mysql在php

UPDATE users 

    SET 

    student_name = (SELECT main.college.Student_Name 
         FROM main.college 
         WHERE main.college.Enroll_No = '123456' 
         LIMIT 1) 
     WHERE user_id =5 

上面的查詢上phpmyadmin的成功運行更新的用戶數據庫。但在PHP不能能夠更新用戶表

<?php 



     require_once('dbConnect.php'); 

      $sql = "UPDATE users \n" 
        . "\n" 
        . "SET \n" 
        . "\n" 
        . "student_name = (SELECT main.college.Student_Name\n" 
        . " FROM main.college\n" 
        . "WHERE main.college.Enroll_No = '123456'\n" 
        . "LIMIT 1) \n" 
        . "WHERE user_id =5"; 
        if(mysqli_query($con,$sql)){ 

          mysqli_query($con,$sql); 

          echo 'successfully registered'; 
      }else{ 
       echo 'oops! Please try again!'; 
      } 


    mysqli_close($con); 

?> 
+0

也許我錯了,但我沒有認爲有必要把'\ n'。這可能是它沒有成功執行的原因。 – youssouf

+0

@youssouf:而不是猜測什麼t他的問題是,最好通過使用'mysqli_error'來檢索MySQL錯誤消息來診斷* actual *錯誤。我們猜測代碼已成功連接到數據庫,並且用戶對引用的模式對象具有足夠的權限。 – spencer7593

+0

undrestood。我會盡力。 – youssouf

回答

0

的代碼似乎是在提醒mysqli_query功能倍,這是沒有必要的。

對於調試,我強烈建議您致電mysqli_error(在else塊中)檢索MySQL錯誤消息,並將其回顯出來。 (這將讓你看到一個錯誤,而在於不知道是什麼問題。

而且調試,呼應出$sql的內容,你將它發送到數據庫之前。


(我們假設你觀察到的行爲是'oops! Please try again!'的回聲,但這實際上只是一個猜測,因爲你觀察到的行爲的描述是一個相當模糊的「不能夠」。)

+0

我刪除了額外的'mysqli_query',並在'else'中添加了'mysqli_error'。沒有錯誤顯示。它的回聲'哎呀!請再試一次'。 @ spencer7593 –

+0

Uhhmmm ...'mysqli_error'只是返回一個字符串。爲了顯示/輸出錯誤信息,你可以在返回的字符串中輸入'vardump','printf'或'echo'。 'echo mysqli_error($ con);'或者你可以寫入你的日誌輸出,或者任何其他的東西,就像你使用其他字符串一樣。 http://php.net/manual/en/mysqli.error.php – spencer7593

+0

我們假設你已經確認已啓用PHP錯誤報告,並驗證數據庫連接是否有效......用戶正在按照所需的權限進行連接。也就是說,你已經調試過這個問題,知道問題出在SQL語句上。 – spencer7593