我最近重建了我的网站,现在我收到了这个错误:
警告: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。
答案 0 :(得分:5)
我觉得奇怪的是你通过以下方式关闭了与数据库的连接:
mysql_close();
然后你使用
$variable = mysql_result(...);
通常,如果您想知道错误的原因,请使用函数mysql_error。
答案 1 :(得分:1)
尝试在RAND之后删除空格:
$ query =“SELECT * FROM foxlose ORDER BY RAND()LIMIT 1;
答案 2 :(得分:0)
你可以在这做几件事。
即
mysql_query($query, $connction);
此外,Thomas Clayson指出,确保您获得结果。如果没有结果,mysql_result将抛出错误
确保mysql_select_db(假设您正在使用它),正确连接到数据库。
根据版本等因素,您可能需要使用分号来关闭mysql语句
即。
$query = "SELECT * FROM foxlose ORDER BY RAND () LIMIT 1;";
其中大部分都来自其他有类似问题的人。完全信用(以及更多想法):http://www.daniweb.com/forums/thread26425.html