V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kennedy32
V2EX  ›  PHP

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

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

    我一般是这样写的 :)
    yeyeyuky
        8
    yeyeyuky  
       2015-08-22 11:23:28 +08:00
    引号问题吧,变量在单引号中是不解释的,你把变量放进单引号内会直接变带$符的字符串。如果想用引号解释变量,放在双引号内就可以。
    zjqzxc
        9
    zjqzxc  
       2015-08-22 16:09:56 +08:00
    其实,,没必要手动 close 。。每个脚本执行完了 php 自己会去关闭数据库连接的,除非声明是长连接。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1096 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:48 · PVG 06:48 · LAX 15:48 · JFK 18:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.