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

时间:2012-01-05 12:32:05

标签: php mysql database

我有一个包含三个表的用户,更新和错误的数据库。

我已经设置了一个用户和所有爵士乐。在我的PHP中,我已连接到数据库,连接工作正常。但是,当我尝试访问更新表时,我收到此错误:

  

警告:mysql_fetch_array()要求参数1为资源,第13行/members/pages/updates.php中给出布尔值

当我尝试像这样访问数据库时:

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'];
}

我使用相同的代码,但将表名从更新更改为错误或用户,它工作得很好。我不明白给我的错误,所以我想知道是否有人知道发生了什么或之前有这样的错误?

3 个答案:

答案 0 :(得分:2)

UPDATEMySQL中的保留键,重命名您的表格。

答案 1 :(得分:2)

updatemysql reserved word,所以你必须附上这样的反引号

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

作为旁注,您应该考虑从mysql_切换到PDO

答案 2 :(得分:2)

keyword update已被提及。重命名表格或使用反引号to mark the identifier as such

  • mysql_query返回一个假值并不意味着结果集为空。它表示错误,请参阅mysql_error
  • connect_to_db_member.php应该以某种方式使mysql_connect()返回的mysql资源可访问,以便将其传递给其他mysql_函数,例如mysql_query('SELECT ...',$ mysql)
  • 如果没有数据库连接,你的脚本就无法“生存”,即connect_to ... php不是可选的。因此,我使用require代替include
  • 对于数据库连接失败,您是否有一些错误处理?

e.g。

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