这个问题纠结我好久了  
一直百思不得其解<?php

require_once "mysql_dw.class.php";//这个是一个数据库 操作类
$logindw=new mysql_dw();//类的实例化 $id=$_POST['id'];
$password=md5($_POST['password1']);
$sql="select password from user1 where name="."'".$id."'";
$rec=$logindw->execute_dql($sql); 取回 查询返回的数据集


if($row=mysql_fetch_assoc($rec)){
if($password==$row['password'])
{
echo '登录成功';
}
}
else {
echo"失败";
}

?>

解决方案 »

  1.   

    因为 php 是弱类型语言,会根据上下文自动变换操作数的类型任何非空数据,都会在需要 bool 类型的场合自动转换成 true(反之为 false)
      

  2.   

    因为当没有更多行的时候,这个函数的返回值是FALSE
      

  3.   

    既然 是可以~~~~~~那为什么  系统会提示bool-assign : Assignment in condition
      

  4.   

    bool-assign : Assignment in condition
    不是 php 的提示信息!
      

  5.   

    因为PHP判断相等是用==,而不是=。所以,如果要取消这个警告,一般可以这样:$row=mysql_fetch_assoc($rec);if($row)
    ....另外,我再次建议,不要再用这个mysql库了………………用PDO。
      

  6.   

    ==和===的问题,==不判断类型,===判断类型,当==的时候就像版主所说,会进行类型转换,转换成boolean类型,非空的会转换为true,否则转换为false