无法访问SQL数据库表,但可以访问同一数据库上的其他数据库

问题描述:

我有一个包含三个表(用户,更新和错误)的数据库。无法访问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://*.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

updatemysql reserved word让你有反引号括这样

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

作为一个侧面说明,你应该考虑从mysql_切换到PDO

+0

我会读你的建议。再次感谢。 – ragebunny 2012-01-05 12:48:28

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

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))); 
}