MySQL查询返回值到底是什么以及如何判断查询结果
说到MySQL的mysql_query()函数,它的返回值其实挺有讲究的。简单来说:
- 如果查询成功了,
$result会是数据库返回的匹配记录的资源句柄,听起来有点复杂,就是你查的数据结果的“凭证”。 - 如果查询失败,比如SQL写错了,那
$result就是false,哎,这时候就得检查SQL语句或者连接配置。 - 有意思的是,即使数据库里没有你查找的记录,查询依然算成功,所以
$result不会是false。这就是说,没有返回记录跟错误是不一样的!
所以,如果想知道有没有查到什么数据,就不能只看$result值,而是得用mysql_fetch_array($result)来试试:
$test = mysql_fetch_array($result);
如果$test为false,那就是没找到匹配记录,嗯,就这么简单,千万别搞混了!

Oracle列查询返回值类型是什么以及其他数据库或环境的返回值特点
Oracle数据库那边就严谨多了,查询列的返回值类型其实就是它在数据库表里定义的数据类型,听起来很靠谱,比如某个字段是VARCHAR2(50),执行查询时拿回来的数据就是字符串类型;如果是NUMBER类型,那就是数字,这个设计让程序和数据库沟通时非常“安心”。
顺便说说其他数据库和环境的“返回值”情况:
- 在VC里用ADO执行查询得先引入ADO库,这会让编译器知道你要用啥。接着,执行查询后,用
ExecuteReader方法拿到的是一个SqlDataReader对象。这个reader很厉害,你可以用它一条条读数据。 - MySQL用
mysql_db_query函数时,传入数据库名、SQL语句、连接资源。它返回值:
- 对查询类语句(SELECT)会返回一个“结果资源号”,这不是普通数字,是你后面操作数据的钥匙。
- 对增删改操作(INSERT, UPDATE, DELETE)则返回TRUE或FALSE,成功或失败一目了然。 - 对于GBase数据库或其它.NET环境,
ExecuteReader函数返回GBaseDataReader或类似SqlDataReader的东西,基本都是一个能让你挨个遍历查询行的数据流。
这儿的重点是,每种数据库和环境对返回值定义都挺讲究,千万别把它们混着用,否则就像拿错钥匙开锁,尴尬又费劲。

相关问题解答
-
mysql_query()执行查询后返回值是啥呀?
答:哎,这个mysql_query()返回值其实挺好玩。如果查询写得没错,它会给你一个“资源指针”,你懂的,就是个通往数据的票证。如果出错了,那就是false。不过,注意哦,就算没查到东西,也不算查询失败,资源指针还是有的,所以别单凭它判断有没有数据,用mysql_fetch_array()试试看灵不灵。 -
Oracle查询时返回的数据类型是不是固定的呢?
答:没错啦,Oracle特别靠谱,查询返回的数据类型就是表里字段本来的类型。比如你表里定义是字符串就给你字符串,是数字就数字,统统一致,这玩意儿很重要,不然程序要处理起来超麻烦。 -
在VC中用ADO怎么拿到查询返回值呢?
答:嘛,你得先把ADO库给整进项目里(就是#import那个东西),然后执行查询时用ExecuteReader(),它会返回个SqlDataReader对象。这个读者厉害了,可以帮你像流水线一样一条条读数据,特别顺溜。 -
MySQL的mysql_db_query函数失败了怎么办?
答:这玩意儿一般失败就是数据库连接挂掉了或者SQL语句写错了。你可以看看die()里提示啥,连接失败了赶紧检查用户名密码啥的;遇到语法错误就去改SQL。成功了会返回结果,失败就FALSE,这就是这么直白。
新增评论