新人求教,不懂是哪里出问题

2015-08-22 04:34:21 +08:00
 kennedy32
$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 错误。
不知道是哪里出错,求各位大神指教

3203 次点击
所在节点    PHP
9 条回复
quadpixels
2015-08-22 05:27:44 +08:00
确定 Query 语句在 MySQL 界面和在运行时是同一条吗?
我猜有可能在执行时,符合“ link==$article_link ”的条目其实在数据库中不存在,所以返回了 0 行的空结果。
因为顺利执行了 SQL 查询,仅仅是结果为空,所以不是错误。
(我构造了一个类似的情况然后在查询最后加上了 “ WHERE 1==0 ” 试出来的,不一定正确哈)
ljbha007
2015-08-22 09:02:33 +08:00
查不到数据不一定代表出错了啊 仅仅是没有这条符合条件的数据而已
cxbig
2015-08-22 09:31:19 +08:00
如果直接运行有数据条目返回,那么比对一下那个$query 的结果。
把第一行的赋值结果用 var_dump 或其他 log 的方式输出,比对字符串是否一致。
(双引号内的变量养成习惯用花括号框起来:"...{$var}...")
然后检查$conn 是否连接到正确的数据库,用其他 sql 命令验证一下$conn 的有效性。
branchzero
2015-08-22 10:05:25 +08:00
result : 0 不等于一定有错吧。。。
你最后输出的玩意也是有些莫名其妙的。
wulikanhua
2015-08-22 10:08:23 +08:00
目测应该是引号的问题,你把单引号放外面,双引号放里面
orvice
2015-08-22 10:11:05 +08:00
'$article_link'
去掉引号试试
inoris
2015-08-22 10:12:25 +08:00
$query = "SELECT content FROM article WHERE link='" . $article_link . "'";

我一般是这样写的 :)
yeyeyuky
2015-08-22 11:23:28 +08:00
引号问题吧,变量在单引号中是不解释的,你把变量放进单引号内会直接变带$符的字符串。如果想用引号解释变量,放在双引号内就可以。
zjqzxc
2015-08-22 16:09:56 +08:00
其实,,没必要手动 close 。。每个脚本执行完了 php 自己会去关闭数据库连接的,除非声明是长连接。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/215041

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX