PHP+MySql 数据库开发出现“supplied argument is not a valid MySQL result resource in XXX”错误是什么原因?

2013 年 5 月 27 日4880

PHP数据库开发出现“supplied argument is not a valid MySQL result resource in XXX”错误也是很烦人的。

最近用phpmysql数据库搞开发,运行一个页面时得到如下错误:supplied argument is not a valid MySQL result resource in XXX,后面的xxx当然是指哪个文件中的哪行了,此处省略。

开始以为这个是个小错误,没什么大不了的,运用echo,把查询语句输出一下,发现语句一切正常。但是错误却仍然存在,于是用输出的sql语句又在phpMyAdmin中运行,得到想要的结果。

这下感到问题大了,因为查不出什么原因,但是出错的语句就在$result = mysql_query($sql) 上,也就是说$result得不到一个数据集,导致后面的$row = mysql_fetch_array($result)自然也就无法运行了。于是so了一下,发现大多都是由于sql语句运行出错导致这个错误。但是我的sql语句并没有出错啊。后来终于找到一个调试方法,呵呵,在上面的运行语句中追加or die(mysql_error),也就是把$result = mysql_query($sql)语句改称为如下形式:

$result = mysql_query($sql, $remoteConn) or die(mysql_error);//使用die语句可以调试出具体的出错信息

这样再把php文件上传服务器,然后刷新浏览器。终于发现问题所在。原来此php页面所使用的数据库用户没有针对该表的查询权限。也就是说,php使用的数据库用户权限不够,这自然会返回错误了。重新把权限分配一下,再执行,一切ok了。

因此,die(mysql_error)是一个很重要的调试语句,希望大家都能够掌握它并灵活运用。转载请注明来自巧巧读书,谢谢!

相关文章:mysql 时间函数用法 集合

mysql> SELECT something FROM tableWHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;。DAYOFWEEK(date)返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。mysql> select DAYOFWEEK('1998-02-03');-> 3。WEEKDAY(date)返回date的星期索引(0=星期一。

0 0