我是一名初级 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);
}
?>
如果我单击网页上的登录按钮,则会出现错误:未找到电子邮件或密码! (最后一个 else 语句)。它执行文件中的代码,但不执行 if($rows==1) 下的代码。 我能做些什么来让这段代码继续工作吗? 同样,此代码在家里可以工作,但在旧版本的学校中则不行。我问我的老师是否可以更新 phpmyadmin,但其他类(class)现在正在使用 phpmyadmin,因此无法完成。 我希望你能理解我的问题。 抱歉我的英语不好,这不是我的母语。
最佳答案
您只需在 mysql_query
中传递 mysql_connect
连接变量来尝试一次,这样您就可以获得行
<?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";
?>
关于php - mysql_num_rows 函数在旧版本的 phpmyadmin 上返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35535015/