$sql="select * from students where xhid='$user' and name='$pass'";
echo $sql;
exit;
看看这个输出的sql对吗?

解决方案 »

  1.   

    问题出在对mysql_query函数返回值的理解上
    mysql_query('select ...')只要传入的sql语句没有错误,它将始终返回一个资源句柄,换言之只有到发生mysql执行错误才会返回false。
    大概你是想判断结果集是否为空,可以使用mysql_num_rows()函数
    if(mysql_num_rows($result)>0)
      {
      header("location:stdefault.php");
      }
      else
      {
      header("location:jsdefault.php");
      }
      

  2.   

    这样?
    浏览器显示;select * from students where xhid='1' and name='clm'是显示字符啦!
    难道这是我的sql语法错误?
      

  3.   

    本函式送出 query 字串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程式会自动寻找最近开启的 ID。当 query 查询字串是 UPDATE、INSERT 及 DELETE 时,传回的可能是 true 或者 false;查询的字串是 SELECT 则传回新的 ID 值。[email protected] (09-Feb-1999) 指出,当传回 false 时,并不是执行成功但无传回值,而是查询的字串有错误。这是语法书上的,我确实是对函数理解不够,谢谢babystudio ,谢谢goodname.这确实是我的一个教训啊!
      

  4.   

    倒过来判断对吗?
    if(!$result)
      {
      header("location:jsdefault.php");
      }
      else
      {
      header("location:stdefault.php");
      }
      

  5.   

    <?php
      $mylink = mysql_connect("localhost","cai","123") or die("连接服务器失败!");
      mysql_select_db("kaoshi",$mylink) or die("连接数据库失败!");
      $sql="select * from students where xhid='$user' and name='$pass'";
      $result = mysql_query($sql,$mylink);
      if(mysql_num_rows($result))
      {
      header("location:stdefault.php");
      }
      else
      {
      header("location:jsdefault.php");
      }
    ?>