我觉得是你的逻辑问题。当执行到if的时候,上面的while循环已经执行完了,而且游标已经指向最后一条记录的后面,也就是当前游标指向空,当然就没有值了。如果你把if语句放到while内部就不存在这个问题了。

解决方案 »

  1.   

    content is null 可能成立的条件是
    content 有 NULL 属性,允许为空
      

  2.   

    并且这个值在保存是没有设定,而且你的if是不是该写到while循环题内啊
      

  3.   


    并且这个值在保存是没有设定,而且你的if是不是该写到while循环题内啊
    $query = mysql_query("select * from our where content is null");    while($row = mysql_fetch_array($query)){
          $str = $row['content'];
          if($str){
            echo "1";
          }else{
            echo "2";
          }
        }content明明有内容.为什么echo "1"  不输出呢
      

  4.   

    测试了一下 blob 类型无论是 NULL 还是 NONULL 都不能用 is null 判断是否为空
    只能用 length(blob字段名)=0 来判断再说你的两条记录的 content 都是6字节,显然不是空的
      

  5.   

    where content is null  
    你这里不是取null的记录吗,取出来的所有记录的content值当然就是null了。所以都进入else分支了。
      

  6.   


    并且这个值在保存是没有设定,而且你的if是不是该写到while循环题内啊
    $query = mysql_query("select * from our where content is null");    while($row = mysql_fetch_array($query)){
          $str = $row['content'];
          if($str){
            echo "1";
          }else{
            echo "2";
          }
        }content明明有内容.为什么echo "1"  不输出呢把str echo 出来看看是什么值