mysql_query()的返回值到底是什么

查找资料说mysql_query()的返回值是一个资源标识符,这个资源标识符又该如何理解呢?而且使用select查找时,就算没有找到符合要求的数据返回值也是一个资源标识符而不是FALSE。另外,有时候返回值为resource ID #5;但是数据库中只有ID号0到3的四个数据,这个#5是什么意思呢?还有使用$res=mysql_query("select * from.......)后怎么得到所搜索到的数据的ID号?

mysql_query()一般是用来查询数据里面的数据。
如:
$username=$_POST["name"];
$sql="SELECT *FROM members where login_name = 'username'";
$result=mysql_query($sql);
以上程序是检测数据库中是否存在表单传送过来的用户名
如果检测成功,$result是返回数据库中的匹配的记录,如果出错则$result为false。
需要注意的是,即使数据库中不存在查询的数据,检测也算成功,$result也不会是false.
所以,如果要检测数据库中是否有匹配记录就用语句mqsql_fetch_array()来判断。
$test=mqsql_fetch_array($result);
如果记录为空则$test为false。这样就达到了目的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-26
mysql_query()如果里面放的是查询之类的语句,那返回的是资源,说白了就是你要查的数据结果集;如果里面放的是增删改之类的语句,那返回的是true或者false了。

如果你要使用这个数据结果集,必须用mysql_result(), mysql_fetch_array(), mysql_fetch_row()等函数获取里面的数据,就是mysql_query()得和上面几个函数配合使用。追问

但是说没有查找到数据返回的也是一个资源标识符,想这个resource ID #5;该怎么理解呢?还有$res=mysql_query("select * from.......):$row=mysql_fetch_array($res);后怎么获得所有的查询结果的ID号呢

追答

resource ID #5这个是说明返回的是资源,这个ID #5跟你数据库中的字段ID是不同的,不用管这个。你用的$row=mysql_fetch_array($res);那么就可以例如$row['id'],里面的id是你数据表中的字段,来获取表中字段的值了。获取所有的用for循环或foreach循环获取就行了。不知道能不能帮到你。

追问

哦,是这样啊,是使用for($row){echo $res['ID']}来显示ID号码

追答

例如:

本回答被提问者采纳
第2个回答  2014-11-25
如果sql查询语句是合法的,并能够被服务器执行,则返回值为一个资源标识符;否则返回false。本回答被网友采纳
第3个回答  2008-12-14
布尔值 NULL ,false, 0 ," " ,都代表为假,

mysql_query 对于 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,打印出来是 类似于 “Resource id #3" 的一个字符串,所以就为真了。

这个 “Resource id #3" 就好比是一个指示牌, 连接着你要操作的数据,用函数操作他时,例如:mysql_fetch_array($insert), 他就把从数据库调出来的结果带到函数里做参数了。
第4个回答  2013-12-19
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。
相似回答