ホームページ  >  記事  >  バックエンド開発  >  星期天的打扰大家,真是不好意思,但是实在是着急关于mysql的有关问题

星期天的打扰大家,真是不好意思,但是实在是着急关于mysql的有关问题

WBOY
WBOYオリジナル
2016-06-13 10:15:19871ブラウズ

星期天的打扰大家,真是不好意思,但是实在是着急啊……关于mysql的问题

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->  $query=mysql_query("select * from user where id={$_POST['id']}");  while($result=mysql_fetch_array($query)){       echo $result['name'];   }


 这是一段简单的php查询程序。现在有一个问题,就是如果$_POST['id']在表里找不到,即 mysql_query()查找不到结果。
页面是没有显示结果,但是用FF抓包的时候,会响应错误如下:
  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ./././ line xx

我现在不想让他报错,想在程序中加个判断。应该如何加?
  
  我尝试了if($query) if($query != false) if(mysql_num_rows($query)都没有用。
  mysql_query 如果查询不到,会返回指针还是false?
这个判断应该怎么写啊?大家帮个忙。谢谢了……


------解决方案--------------------
你先var_dump(mysql_fetch_array($query)))看看,返回的是什么,你不就知道了
------解决方案--------------------
不应该像你说的
当mysql_query()查询到匹配的结果时,返回的是一个 resource类型的结果集
当没有匹配的结果时,返回的也是 resource类型的结果集
当查询出错的时候返回false
------解决方案--------------------
那么就是你a.php的原因了。
不妨把代码贴出来, 顺带把mysql.php也贴出来吧
------解决方案--------------------
不会的。
如果有错误,多半是你的$_POST['id']没有取到值。否则不会报错误的..
------解决方案--------------------
你就不用post的的方法,直接用get运行mysql.php,同一个id看看结果是什么
------解决方案--------------------
对于 $query=mysql_query("select * from user where id={$_POST['id']}");
若 $_POST['id'] 不存在,或为空,则 SQL 指令为
select * from user where id=

若 $_POST['id'] 是非数字量,他已说“故意把查询的某个值弄错了”则 SQL 指令为
select * from user where id=xxx
xxx为字符串

则必然产生查询错误!


出现错误会有文本类型的错误信息,ff居然要通过抓包才能看见,这个ff应该抛弃了
------解决方案--------------------
哥们想必你用的是火狐吧!你清下换春看看啊了。
------解决方案--------------------
直接输出sql看看
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。