$query=mysql_query("select * from yonghu_t where yonghu_yhmm=$addusername");
    if($query){
echo "<script>";
echo "alert(‘用户名已经存在’); window.history.go(-1);";
echo "</script>";
    }else{    $sql="insert into yonghu_t (yonghu_yhmc,yonghu_yhmm,yonghu_yhsf,yonghu_lxfs,yonghu_yx,yonghu_jdsj) values('$addusername','$password1','$yhsf','$lxfs','$addemail',$time)";
echo "<br>".$sql;
$return=mysql_query($sql);
    } 意思就是先查询,数据里面没有再插入!可是我每次执行。都插入到数据库了,这是为什么呢?

解决方案 »

  1.   

    "select * from yonghu_t where yonghu_yhmm=\"".$addusername."\""
      

  2.   

    "select * from yonghu_t where yonghu_yhmm=$addusername"====》"select * from yonghu_t where yonghu_yhmm='$addusername'"
      

  3.   

    mysql_query 的返回值 false不是查不到数据,而是你的sql语句有错误。
    判断有没有,你可以写个sql语句 
    $query=mysql_query("select count(*) from yonghu_t where yonghu_yhmm=$addusername");
      

  4.   


    $sql = "select * from yonghu_t where yonghu_yhmm = '$addusername'";
    $query = mysql_query($sql);
    if(mysql_num_rows($query) >= 1 )
    {
        echo "<script>alert(‘用户名已经存在’);window.history.go(-1)</script>";
    }
    else
    {
        $sql = "insert into yonghu_t (yonghu_yhmc,yonghu_yhmm,yonghu_yhsf,yonghu_lxfs,yonghu_yx,yonghu_jdsj) values('$addusername','$password1','$yhsf','$lxfs','$addemail',$time)";
        echo "<br>".$sql;
        $return = mysql_query($sql);
    }
      

  5.   

    $query=mysql_query..
    都会有值的,是返回的查询标识
    如果要达到你想要的,应该
    1.直接用replace into...(如果存在就更新,不存在则增加)
    2.
    $query=mysql_query("select count(*) from yonghu_t where yonghu_yhmm=$addusername");
    $row=mysql_fetch_row($query);
    if($row[0]>0){
    ...
    }else{
    ...
    }