php的mysql查询报错,快进来看看

有两段php代码报错。但是在另一个服务器中却没报错。不知道什么原因,代码如下:

$termidc=mysql_result(mysql_query("SELECT term_id FROM $table_term_taxonomy WHERE term_taxonomy_id='$termid' AND taxonomy='category' LIMIT 1"),0);

$termnamec=mysql_result(mysql_query("SELECT name FROM $table_terms WHERE term_id='$termidc' LIMIT 1"),0);

报错内容是

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 21 in /post.php on line 217

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 22 in /post.php on line 218

报错的PHP版本:5.3.3

未报错的PHP版本:5.4.45

阅读 4.1k
4 个回答

结果集为空自然就报错了。

没报错可能是配置文件配置了不显示错误信息。

mysql_result之前,可以先判断下获取到结果集的数量。

图片描述

看手册mysql_result php4以上版本

是不是因为没查询到数据

if(mysql_num_rows($result) > 0) { ... }

也可以这么写:

$result= mysql_query("SELECT ...");
if (mysql_num_rows($result) == 0) { 
    // No result
} else {
    // Show result
}

报错显示的很清楚了,你sql语句的结果没有0行数据,也就是说

"SELECT name FROM $table_terms WHERE term_id='$termidc' LIMIT 1"

这个语句没有返回结果集

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题