<?php 
$name=$_POST['name'];
$password=$_POST['password'];
$conn=mysql_connect(localhost,root,root);
mysql_select_db("wblog",$conn);
$sql="select * from w_admin where a_name=".$name." and password=".$password."";
$result=mysql_query($sql,$conn);
$i=mysql_num_rows($result);
//echo $i;
if ($i==1){
echo "<script>alert('欢迎登录');</script>";
}
?>
在页面处得到 帐号 和 密码Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\learn\wblog-php\w_admin\login\login.php on line 8
为什么 求各位大神帮助

解决方案 »

  1.   


    $conn=mysql_connect(localhost,root,root);//一般是  ('localhost','root','root')$sql="select * from w_admin where a_name=".$name." and password=".$password."";
    //$sql="select * from w_admin where a_name='".$name."' and password='".$password."'";
      

  2.   

    谢了  我试了 不是那的错 应该是刚开始 前台页面没提交数据
    导致 mysql_num_rows() 这里为空怎么改呢?
    各位大神
      

  3.   


    #1第二个绿色的,就是sql那句,你改了么?
      

  4.   

    对于这个问题,归根到底是mysql_query()函数返回的记录集句柄不是一个有效的。
    对于此可能出现有多种情况会出现这个问题,我有个比较简单的调试方法,就是echo方法,可以按以下几种情况测试:
    [1]首先验证表单的值是否传递过来,添加代码
    echo $name."-".$password;
    因为当你的表单中的值没有传递过来,下面执行mysql_query()就会返回一个无效句柄。当然mysql_num_rows()也就会出错了。
    同理你应该检测下的SQL语句是否正确,也是通过echo输出来看看就知道了,如下:
    echo $sql;
    这样先检验你的输入数据,同时注意在SQL语句中比较常出错的地方,就是符号闭合问题,单引号。
    [2]通过上面第一步测试,如果没有错,你必须验证你数据库中的数据是否有包含你从表单传递过来的。否则也会出现这个错误。
    [3]建议:你这个用户登录的代码写得有问题,防错处理不好,比较容易爆出问题。贴出一段代码,你可以参考下:
    // 检测登录
    function login_check(){
    $ok=false;
    $uname=trim($_POST['user']);
    if(empty($uname)){
    exit("<script>alert('用户名不能为空');window.history.go(-1);</script>");
    }
    $upwd=trim($_POST['pwd']);
    if(empty($upwd)){
    exit("<script>alert('密码不能为空');window.history.go(-1);</script>");
    }
    $str="select * from bk_user where uname='$uname'";
    $query=mysql_query($str);
    while($uinfo=mysql_fetch_array($query))
    {
    if($uinfo[upwd]==md5($upwd)){
    $ok=true;
    $_SESSION['uid']=$uinfo['id'];
    $_SESSION['usersession']=md5($uinfo['id'].$uinfo['uname'].$uinfo['upwd']);
    header("Location: system.php");
    }else{
    exit("<script>alert('用户名或密码不正确!');window.history.go(-1);</script>");
    }
    }
    if(!$ok){
    exit("<script>alert('用户名不正确!');window.history.go(-1);</script>");
    }
    }
    希望对你有帮助,上面的调试过程对于初学者编写php有很好的帮助。没事就echo下,你会明白很多事情的。