为了账号安全,请及时绑定邮箱和手机立即绑定

返回的值是Resource id #42这是怎么回事?该怎么解决?

返回的值是Resource id #42这是怎么回事?该怎么解决?

智慧大石 2022-04-16 15:14:31
做了一个mysql的查询 结果返回的值是Resource id #42这是怎么回事?
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

你用的肯定是mysql_query(mysql查询语句)
Resource id #42 这是mysql_query函数的资源标识
这是手册原话:
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。
我来解释一下原话:
mysql_query函数如果执行的sql语句是:SELECT,SHOW,EXPLAIN 或 DESCRIBE 这几个时候,会返回资料标识符(就是你这个Resource id #42);
对于其他的SQL语句(例如:DELETE,UPDATE,INSERT,CREATE等),语句出错才会返回假值。但是这个语句没有语法错误,但是执行了,没有出现效果,它是不会管的。
你可以这么理解,mysql_query函数只是进行了查询。返回只是一个资源标识,还不可以使用。
如果你要显示数据:可以把它读到数组(mysql_fetch_array或者mysql_fetch_assoc())
如果你想知道查询结果行数是多少:可以是用mysql_num_rows
如果你的不是查询语句,直接判断它返回的值是真是假。



查看完整回答
反对 回复 2022-04-19
?
LEATH

TA贡献1936条经验 获得超6个赞

这是一个记录集.里面包含很多记录的.
你需要用循环.
while ($row = mysql_fetch_assoc($result))
这样就可以解析出来里面的内容了.

查看完整回答
反对 回复 2022-04-19
?
慕的地10843

TA贡献1785条经验 获得超8个赞

一般返回这个结果只是一个连接mysql的一般标识,你可能查询语句或是代码出错!

查看完整回答
反对 回复 2022-04-19
  • 3 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信