<?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
为什么 求各位大神帮助
$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
为什么 求各位大神帮助
$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."'";
导致 mysql_num_rows() 这里为空怎么改呢?
各位大神
#1第二个绿色的,就是sql那句,你改了么?
对于此可能出现有多种情况会出现这个问题,我有个比较简单的调试方法,就是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下,你会明白很多事情的。