<?php 
   session_start();
   include_once("conn.php");
?>
<br />
<?php 
if(isset($_REQUEST["action"]) and $_REQUEST["action"]=="register")
 {
  $name=$_POST["username"];
  $sex=$_POST["sex"];
  $password=$_POST["repassword"];
  $question=$_POST["question"];
  $answer=$_POST["answer"];
  $email=$_POST["e_mail"];
   if($password=="")
    {
  info("password empty!","reg.php");
}else{
  $pwd=md5($password);}
  $rs=mysql_query("select id from members where username='".$name."'") or die("query error!");
if($rs>0)--------这个地方执行出来是为真,但是我的apach里面根本就没有记录啊!为什么为真呢?
 {
  info("usered","reg.php");
 }else{
     $sql="insert into members('id','username','password','sex','question','answer','email') values(null,'{$name}','{$pwd}','{$sex}','{$question}','{answer}','{$email}');";
   }
$rs=mysql_query($sql) or die("mysql_query error!");--------------我把上面那个地方改成$rs<1才能正常执行到这里,但是这个地方又提示:mysql_query error!,为什么是不能执行呢?
if(!$rs)
 {
   info("user error,please wait!","reg.php");
 }else{
   info("congratulation,reg user success!","houtai.php");
      }
}else{
   info("error quest","reg.php");
         }
 
 ?>

解决方案 »

  1.   

    那个返回的是true和false
    true表示执行成功
    false表示执行失败
      

  2.   

    mysql_query()返回的是resource类型,因此$rs>0才会判断为真。正确的做法是mysql_num_rows($rs)>0
      

  3.   


    具体的来说 mysql_query() 对select来说 返回的是 resource  对 inset/update 返回的是 true/false可以改成if(mysql_fetch_array($rs))
    {
     //...
    }
      

  4.   

    主要是第二的个错误,$rs=mysql_query($sql)这句,始终提示:mysql_query error!,到底是哪错了啊?
      

  5.   

    $sql="insert into members('id','username','password','sex','question','answer','email') values(null,'{$name}','{$pwd}','{$sex}','{$question}','{answer}','{$email}');"; ========================================$sql="insert into members(`id`,`username`,`password`,`sex`,`question`,`answer`,`email`) values(null,'{$name}','{$pwd}','{$sex}','{$question}','{answer}','{$email}');"; 先改了这个