0

我试图做一个mysql查询,但由于某种原因,这是我得到的错误:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home1/server/public/chat/includes/functions/chat.func.php on line 9

第 9 行如下:

l6 $query = "SELECT `Sender`, `Message` FROM `database_chat`.`chat` ORDER BY `Msg_ID` DESC";    
l7 $run = mysql_query($query);
l8 $messages = array();
l9 while($message = mysql_fetch_assoc($run)) {...

数据库的名称是“database_chat”,“chat”是表...

由于某种原因它没有连接,我错过了什么?

我已经仔细检查了表格元素是否正确写入......

4

4 回答 4

1

尝试在代码中使用错误检查:

$con = mysql_connect(...);

if (!$con){
   // Error handling here
   print_r("SQL Error:". mysql_error());
   exit;
}

$run = mysql_query($query);

if (!$run){
   // Error handling here
   print_r("SQL Error:". mysql_error());
   exit;
}

这只会帮助您找到您遇到的真正问题,我假设这是您的查询中的错误。

重要说明: 不推荐使用 mysql_* 函数,请使用mysqli_*PDO

于 2013-11-06T17:06:25.440 回答
0

试试这个,看看你的查询本身是否有问题:

$run = mysql_query($query) or die(mysql_error());

请注意,您应该只or die(mysql_error());用于调试 - 将其删除以供生产使用。

另外,假设您已经连接到数据库,您是否在运行查询之前选择了数据库

mysql_select_db('database_chat');
于 2013-11-06T17:06:53.673 回答
0

mysql_query($query) 需要一个资源。下面列出了一个使用 $link 作为资源的示例。

$link = mysql_connect($host, $user, $pass);
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    $db_selected = mysql_select_db($db, $link);
    if (!$db_selected) {
        die('Can\'t use database : ' . mysql_error());
    }

$results = mysql_query($query, $link);
于 2013-11-06T17:10:59.717 回答
0

在您的第 17 行查询中需要数据库连接.. 遵循此示例..

    $con=mysqli_connect("localhost","usernamename","password","db_name");
$sql="SELECT * from db_table'";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{

     <---- your code here ----->

     }
于 2013-11-06T17:24:24.327 回答