$query = "SELECT content FROM article WHERE link='$article_link'"; $result = $conn -> query ($query ); if ($result->num_rows > 0 ) //一些输出代码 }else { echo "没有结果!"; echo "Error : (". $conn->errno .") ". $conn->error; }
如果把 query 语句直接复制到 mysql 界面,是有输出一条结果的。
但是在页面上显示“没有结果! Error : ()”,就是没有结果,但是也没有 mysql 错误。
不知道是哪里出错,求各位大神指教
1 quadpixels 2015-08-22 05:27:44 +08:00 确定 Query 语句在 MySQL 界面和在运行时是同一条吗? 我猜有可能在执行时,符合“ link==$article_link ”的条目其实在数据库中不存在,所以返回了 0 行的空结果。 因为顺利执行了 SQL 查询,仅仅是结果为空,所以不是错误。 (我构造了一个类似的情况然后在查询最后加上了 “ WHERE 1==0 ” 试出来的,不一定正确哈) |
![]() | 2 ljbha007 2015-08-22 09:02:33 +08:00 查不到数据不一定代表出错了啊 仅仅是没有这条符合条件的数据而已 |
![]() | 3 cxbig 2015-08-22 09:31:19 +08:00 如果直接运行有数据条目返回,那么比对一下那个$query 的结果。 把第一行的赋值结果用 var_dump 或其他 log 的方式输出,比对字符串是否一致。 (双引号内的变量养成习惯用花括号框起来:"...{$var}...") 然后检查$conn 是否连接到正确的数据库,用其他 sql 命令验证一下$conn 的有效性。 |
![]() | 4 branchzero 2015-08-22 10:05:25 +08:00 result : 0 不等于一定有错吧。。。 你最后输出的玩意也是有些莫名其妙的。 |
![]() | 5 wulikanhua 2015-08-22 10:08:23 +08:00 目测应该是引号的问题,你把单引号放外面,双引号放里面 |
![]() | 6 orvice 2015-08-22 10:11:05 +08:00 '$article_link' 去掉引号试试 |
![]() | 7 inoris 2015-08-22 10:12:25 +08:00 $query = "SELECT content FROM article WHERE link='" . $article_link . "'"; 我一般是这样写的 :) |
8 yeyeyuky 2015-08-22 11:23:28 +08:00 引号问题吧,变量在单引号中是不解释的,你把变量放进单引号内会直接变带$符的字符串。如果想用引号解释变量,放在双引号内就可以。 |
![]() | 9 zjqzxc 2015-08-22 16:09:56 +08:00 其实,,没必要手动 close 。。每个脚本执行完了 php 自己会去关闭数据库连接的,除非声明是长连接。 |