mysql_result()突然发生错误

时间:2010-08-25 18:49:16

标签: php mysql

我最近重建了我的网站,现在我收到了这个错误:

警告:mysql_result():提供的参数不是第28行/home/xx/public_html/asdf.com/comsel.php中有效的MySQL结果资源

警告:mysql_result():提供的参数不是第29行/home/xx/public_html/asdf.com/comsel.php中有效的MySQL结果资源

警告:mysql_result():提供的参数不是第30行/home/xx/public_html/asdf.com/comsel.php中的有效MySQL结果资源

警告:mysql_result():提供的参数不是31行/home/xx/public_html/asdf.com/comsel.php中的有效MySQL结果资源

这些行如下:

mysql_connect($dbhost,$dbuser,$dbpass)
or die("Error: Failed to connect to database");

mysql_select_db($dbname)
or die("Error: Failed to select databse");

$query = "SELECT * FROM foxlose ORDER BY RAND ( ) LIMIT 1";

$result = mysql_query($query);



$title = mysql_result($result,$i,"title");
$link = mysql_result($result,$i,"link");
$nomen = mysql_result($result,$i,"name");
$text = mysql_result($result,$i,"text");


mysql_close();

mysql_close()之前的最后四行;是28-31行。

只有这里的东西:我的网站的旧版本中的那些行是相同的,并且它们起作用。我无法弄清楚改变了什么。当我将计算机用作服务器并在本地托管时,代码也可以正常工作。

知道这个错误试图告诉我什么?

编辑:在文档中添加了所有mysql。

3 个答案:

答案 0 :(得分:5)

我觉得奇怪的是你通过以下方式关闭了与数据库的连接:

mysql_close();

然后你使用

$variable = mysql_result(...);

通常,如果您想知道错误的原因,请使用函数mysql_error

答案 1 :(得分:1)

尝试在RAND之后删除空格:

$ query =“SELECT * FROM foxlose ORDER BY RAND()LIMIT 1;

答案 2 :(得分:0)

你可以在这做几件事。

  1. 检查mysql_query连接是否实际设置。或者,您可以通过将连接传递给mysql查询来确保连接正在通过
  2. mysql_query($query, $connction);
    
    1. 此外,Thomas Clayson指出,确保您获得结果。如果没有结果,mysql_result将抛出错误

    2. 确保mysql_select_db(假设您正在使用它),正确连接到数据库。

    3. 根据版本等因素,您可能需要使用分号来关闭mysql语句

    4. 即。

      $query = "SELECT * FROM foxlose ORDER BY RAND () LIMIT 1;";
      

      其中大部分都来自其他有类似问题的人。完全信用(以及更多想法):http://www.daniweb.com/forums/thread26425.html