2012-01-05 109 views
1

我有一個包含三個表(用戶,更新和錯誤)的數據庫。無法訪問SQL數據庫表,但可以訪問同一數據庫上的其他數據庫

我設置了一個用戶和所有爵士樂。在我的PHP我已經連接到數據庫和連接工作得很好。當我嘗試訪問這樣的數據庫

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /members/pages/updates.php on line 13

include ("../includes/connect_to_db_member.php"); 

$getUpdates = mysql_query(" SELECT * FROM update "); 

if(!$getUpdates) 
    echo "No Updates! <br />"; 


while($row = mysql_fetch_array($getUpdates)) 
{ 
    //echo $row['date'] . " " . $row['title'] . "<br />"; 
    //echo $row['content']; 
} 

我使用相同的代碼,但是從更改表名稱然而,當我嘗試訪問更新表我得到這個錯誤更新到錯誤或用戶,它工作得很好。我不明白正在給我的錯誤,所以我想知道是否有人知道發生了什麼或有這樣的錯誤?

+2

'update'是一個mysql保留字,將它括在'backticks'中。看看[這](http://stackoverflow.com/questions/8701062/expects-parameter-1-to-be-resource-man-boolean-given/8701110#8701110)你有類似的問題 – 2012-01-05 12:36:58

+0

就是這樣!非常感謝!哦,如果你把這個作爲答案,我會打個盹。 – ragebunny 2012-01-05 12:40:42

回答

2

updatemysql reserved word讓你有反引號括這樣

$getUpdates = mysql_query(" SELECT * FROM `update` "); 

作爲一個側面說明,你應該考慮從mysql_切換到PDO

+0

我會讀你的建議。再次感謝。 – ragebunny 2012-01-05 12:48:28

2

UPDATE是保留鍵MySQL,重命名您的表。

2

keyword update已經提到。重命名錶或使用反引號to mark the identifier as such

  • mysql_query返回一個falsy值並不意味着結果集是空的。這表示錯誤,請參閱mysql_error
  • connect_to_db_member.php應該以某種方式使mysql_connect()返回的mysql資源可以訪問,以便將它傳遞給其他mysql_函數,例如, mysql_query('SELECT ...',$ mysql)
  • 如果沒有數據庫連接,你的腳本不能「活」,即connect_to ... php不是可選的。因此,我會使用require而不是include
  • 對於發生故障的數據庫連接,您是否有一些錯誤處理?

例如

<?php 
require '../includes/connect_to_db_member.php'; 
$getUpdates = mysql_query(" SELECT * FROM `update` "); 

if(!$getUpdates) { 
    echo "an error occured "; 
    echo mysql_error(); 
    die(); 
} 


$row = mysql_fetch_array($getUpdates); 
if (!$row) { 
    echo 'no updates'; 
} 
else { 
    do 
    { 
    //echo $row['date'] . " " . $row['title'] . "<br />"; 
    //echo $row['content']; 
    } while(false!==($row = mysql_fetch_array($getUpdates))); 
}