<?php
$name = isset($_POST['name'])?$_POST['name']:'';
$posd = isset($_POST['password'])?$_POST['password']:'';
if ($name==''||$posd=='') {
header('location:denglu.html');
}
$con = mysql_connect('localhost','root','');
 mysql_select_db('ena');
 $sql= "select * from student where name='$name' and password=$posd";
 
  $fan= mysql_query($sql);
  
  $hang = mysql_num_rows($fan);
 var_dump($hang);
?>
输出int(0)  
 应该输出int(1);
这是怎么回事啊。 

解决方案 »

  1.   

    你的password是数字类型的?
    如果不是请加上单引号。
      

  2.   

    你的password字段应该是字符串吧,别忘了加引号
    $sql= "select * from student where name='$name' and password='$posd'";
      

  3.   

       password是数字类型的  不用加的。
      

  4.   

     password 不是字符串  , 不用加    别的地方有问题么?
      

  5.   

     $fan= mysql_query($sql) or die(mysql_error());
      

  6.   

     password 不是字符串  , 不用加    别的地方有问题么?你的表结构是怎样的?贴出来
      

  7.   

    $sql= "select * from student where name = ' ".$name." ' and password =' ".$posd ." ' ";
    你sql语句用拼接的字符串试试,是不是单引号不解析变量啊