我是一名初学php程序员,并尝试使用数据库创建注册/登录系统。该系统在家中使用最新版本的phpmyadmin,但我的学校还没有将其更新到最新版本(不用担心,这不是家庭作业)。我遇到的问题是,当我尝试登录时,学校mysql_num_rows
返回0,但当我尝试在家登录时返回1。我的老师说phpmyadmin的版本可能会导致这个问题。学校版本是:4.5.2。
这是我的login.php文件:
<?php
include('connect.php');
session_start();
$error = "";
$emailaddress = $_POST["emailaddress"];
$password = $_POST["password"];
if(empty($emailaddress) || empty($password)){
$error = "Email or password is invalid!";
echo $error;
}
else{
$queryforlogin = mysql_query("SELECT * FROM users WHERE emailaddress='$emailaddress' AND password='$password'");
$rows = mysql_num_rows($queryforlogin);
if($rows==1){
$_SESSION['login_user'] = mysql_query("SELECT firstname FROM users WHERE emailaddress='$emailaddress'");
$username = mysql_fetch_array($_SESSION['login_user']);
echo "Welcome, " . $username['firstname'] . "!";
}
else{
$error = "Email or password not found!";
echo $error;
}
mysql_close($connect);
}
?>
如果我点击网页上的登录按钮,则会显示错误:找不到电子邮件或密码! (最后的其他声明)。它执行文件中的代码,但不执行if($ rows == 1)下的代码。 有什么我可以做的仍然让这个代码工作? 同样,这段代码可以在家里使用,但在旧版本上不适用于学校。我问我的老师他是否可以更新phpmyadmin,但其他课程现在正在使用phpmyadmin,因此无法完成。 我希望你理解我的问题。 对不起我的英语,它不是我的母语。
答案 0 :(得分:0)
您只需在mysql_connect
中传递mysql_query
连接变量就可以尝试这样一次,这样就可以获得行
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);
echo "$num_rows Rows\n";
?>
答案 1 :(得分:0)
让我们得到正确的蝙蝠,PHPmyadmin与mysql_num_rows无关,无论它返回什么,PHPmyadmin只是一个管理服务器链接到的数据库的工具,一切都发生在服务器端。
我认为您的学校数据库中的表中没有相同的用户名和密码,因此mysql_num_rows()返回0,这是查询不能执行的操作产生任何结果, 或者可能是您的查询返回的结果超过1,在这种情况下,条件会再次失败($ rows == 1)。