mysql_num_rows函数在旧版本的phpmyadmin

时间:2016-02-21 10:34:16

标签: php mysql

我是一名初学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,因此无法完成。 我希望你理解我的问题。 对不起我的英语,它不是我的母语。

2 个答案:

答案 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)。