2017-09-16 151 views
0

我已經嘗試了噸代碼的不同版本,從噸不同的網站。我完全困惑爲什麼這不起作用。即使複製和粘貼的代碼不會工作。我對PHP和MySQL相當陌生,但已經做了相當數量的HTML,CSS和JS,所以我不是一般的新代碼,但我仍然是一個初學者。我正在嘗試從數據庫中獲取數據,以便將其與最後一頁中的用戶輸入數據(實質上是登錄事物)進行比較。我甚至還沒有得到比較部分,因爲我無法獲取信息,我所得到的只是chrome調試窗口中的500錯誤代碼。我完全無能爲力,因爲我讀過的一切都說這應該是完全正確的。無法從數據庫表中獲取數據.... 500錯誤

我已經完全不知所措了,這讓我非常沮喪。希望這裏有人能幫忙。對於記錄來說,它連接的很好,當我嘗試使用$ sql變量時,一切都會崩潰。如果這意味着什麼,我正在Godaddy託管上做這件事。

<?php 
$servername = "localhost"; 
$username = "joemama198"; 
$pass = "Password"; 
$dbname = "EmployeeTimesheet"; 

// Create connection 
$conn = mysqli_conect($servername, $username, $pass, $dbname); 
// Check connection 
if (mysqli_connect_errno) { 
    echo "Failed to connect to MySQL: " . mysqi_connect_error(); 
} 

$sql = 'SELECT Name FROM Employee List'; 
$result = mysqli_query($conn, $sql); 

    if (mysqli_num_rows($result) > 0) { 
     while($row = mysqli_fetch_assoc($result)) { 
      echo "Name: " . $row["Name"]. "<br>"; 
     } 
    } else { 
     echo "0 results"; 
    } 
    mysqli_close($conn); 

?>

+0

你能顯示錯誤信息嗎? –

+0

你在'$ sql'的FROM中使用了2個名字時,你的數據庫名是什麼? – Harish

+0

我的數據庫是EmployeeTimesheet。我嘗試訪問的那個數據庫中的表是EmployeeList –

回答

0

數據庫表的SELECT語句的名稱中有一個空格。如果這是試圖:

$sql = 'SELECT Name FROM `Employee List`'; 
+0

修復了以及在phpMyAdmin中更改了我的數據庫名稱。仍然沒有什麼不幸的 –

0

我想你留在您的查詢空白。

$sql = 'SELECT Name FROM Employee List'; 

變化

$sql = "SELECT `Name` FROM `EmployeeList`"; 
+1

Upvoted,因爲這是一個有效的點,並可能導致500錯誤,因爲查詢被認爲是成功的。原來的查詢是一個隱含的別名(與'SELECT \'Name \'FROM \'Employee \'AS \'List \''相同),如果沒有名爲「Employee」的表,則會失敗。 – rickdenhaan

+0

呵呵@rickdenhaan理解。 –

1

有麻煩在這裏:

// Create connection 
$conn = mysqli_conect($servername, $username, $pass, $dbname); 
// Check connection 
if (mysqli_connect_errno) { 
    echo "Failed to connect to MySQL: " . mysqi_connect_error(); 
} 

有三個問題在這裏:

  1. mysqli_conect()代替mysqli_connect()(注意雙nconnect
  2. mysqli_connect_errno應該是一個功能:mysqli_connect_errno()
  3. mysqi_connect_error()代替mysqli_connect_error()(注意lmysqli

原因你得到一個500錯誤是,你沒有調試啓用。請將下面的內容添加到您的腳本的頂部:

ini_set('display_errors', 'on'); 
error_reporting(E_ALL); 

這應該防止不那麼有用的500錯誤出現,而應顯示實際原因任何其他錯誤。

可能是一個問題在這裏:如果查詢失敗

$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 

$resultfalse,你會得到關於mysqli_num_rows()調用錯誤。你應該添加一個檢查:

$result = mysqli_query($conn, $sql); 

if (!$result) { 
    die('Query failed because: ' . mysqli_error($conn)); 
} 

if (mysqli_num_rows($result) > 0) { 
+0

謝謝!!!!我終於讓我的代碼工作。此外,調試的事情是美好的,500錯誤是超級無益的。 我複製並粘貼了所有拼寫錯誤的代碼。我將不得不經常拼寫檢查。 這一直使我瘋狂,非常感謝你 –

+0

很高興幫助:-)請記住,下次當你的瀏覽器顯示500錯誤時,你的服務器日誌應該包含實際的錯誤。不知道GoDaddy在哪裏存儲這些內容,或者它們甚至可以在那裏存儲。 – rickdenhaan