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

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

WBOY
WBOYOriginal
2016-06-13 13:34:17983browse

星期天的打扰大家,真是不好意思,但是实在是着急啊……关于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看看
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn