php中mysql_query若没有查询到结果,返回的是空结果集还是false?

php中mysql_query若没有查询到结果,返回的是空结果集还是false?,第1张

这条查询语句返回的是查询的资源标识符,

非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。

所以如果是空结果,应该是TRUE,只有在出错的情况下才会返回FALSE

这里就涉及到

有一条记录但是记录是空记录

和没有一条记录

的问题了。

首先弄清楚no data found异常是在找不到一条记录的时候报的异常,但是在找到一条空记录的时候是不会报这个异常的。

用集合函数之所以不会报错原因是:

用集合函数的时候,当参数没有赋值时,函数会默认赋一个空值来进行计算,返回的结果也是一个空值(不是没有值)。

而to_char、substr这些函数就不会当参数没有赋值时默认赋空值,也就没有结果返回。

所以区别就是一个有记录返回,但是个空记录,而一个是没有记录返回。

其实你要看清楚空记录和没有记录的区别可以执行如下的程序看返回结果的差别就懂了。

OPEN OUTCURSOR FOR

select MAX(t.Time) from dept t where t.id>'10'

比较

OPEN OUTCURSOR FOR

select t.Time from dept t where t.id>'10'

再比较

OPEN OUTCURSOR FOR

select to_char(t.Time,'yyyy-mm-dd') from dept t where t.id>'10'

那肯定是因为你的insert语句里面的values有问题,这些值都为空,所以你返回结果行为None,你可以试着输出一下self.insertSql这个变量,看看输出来的结果是什么就知道了。

或者是你把values的值换成字符串,成功插入后再修改成变量,慢慢调试。

这种数据库 *** 作的问题,最好是要好好检查下自己的sql语句。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10041731.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存