你的mssql里可能把字段设置为char了,这会导致字段被填充为等同其长度的系列空格。所以if ($str)和if ($str != "")都通过。
你可以试试看if (trim($str))和strlen($str)的结果。

解决方案 »

  1.   

    一开始我也发现这个问题了,所以我统一修改了一遍字段类型
    改成了varchar
    但还是不行...
      

  2.   


    if(empty($str)){
      echo("ok");
    }
      

  3.   

    新insert的也不成吗?
    那可麻烦了...
      

  4.   

    发现用trim可以,但用empty不成,呵呵
    谢谢上面几位!
      

  5.   

    新insert的是可以的用empty($str),或者直接if (!$str)的,两者等价。
    另外,字段为NULL和''在上面两个表达式里的表现是一样的。你也可以手动下更新修正一下,update table field='' where trim(field)='',中间的空格数等于字段长度就可以了。