新手关于PHP在MYSQL数据库查询的一个问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 20:50:07
我制作了一个PHP+MYSQL的用户登录模块,出现了一个问题,会员名是英文加数字的话一切正常,可是会员名是纯数字的话出现错误。
具体的错误是这样的,由于登陆程序的部分代码是
$loginusername=$_POST["username"];
$loginuserpass=$_POST["userpass"];

$query="SELECT username,userpass FROM $table";
$result=mysql_query($query);

$truepassword=mysql_result($result,$loginusername,"userpass");

if($loginuserpass!=$truepassword){
echo("<p>Password incorrect!<a href=login.php>Click here to login again!</a></p>");
exit();
}

所以使用了纯数字的用户名话就会把这个数字当作行数来查询,出现错误,提示Warning: mysql_result() [function.mysql-result]: Unable to jump to row 123 on MySQL result index 4 in J:\wwwroot\wyn_sqlmembers\do_login.php on line 11

所以来请教一下各位大虾,除了在注册时限制必须有字母以外,可不可以让数字的用户名也能正确的查询呢?

或者网上有人说推荐使用高性能的替代函数:mysql_fetch_row(),mysql_fetch_array(),mysql_fetch_assoc() 和 mysql_fetch_object(),怎样使用它们获得同样的功能呢?

是你代码写的问题,你用的取得数据库的函数不大适合,这样是不行的http://www.webxx.net/?p=107 这里有关于数据库添删改查的操作,你看一下就明白了,你的这个是个小问题

数字的用户名是可以正确查询的,我认为还是使用高性能的函数好.下面是我写的代码你参考一下(数据库的连接我就不写了):
$username = $_POST["username"];//用户名
$password = $_POST["password"];//密码
$selectstr = "select * from 表名 where username = '$username' and password = '$password'";
$info = mysql_query($selectstr);
if ($result = mysql_fetch_assoc($info))//如果查询结果正确则返回true
{
$_SESSION[name] = $username;//创建会话,供后面页面使用
$_SESSION[psd] = $password;
header("location:Index.php");
}
else //查询结果返回false
{
echo "<script language = \"javascript\">
alert(\"用户名或密码错误\");
location.href = \"Login.php\";
</script>&q