php - mysql_num_rows 函数在旧版本的 phpmyadmin 上返回 0

标签 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);
}

?>

如果我单击网页上的登录按钮,则会出现错误:未找到电子邮件或密码! (最后一个 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/

相关文章:

php - 在php中查询mysql获取两个表之间的差异

php - PHP 中好的开源分析/统计软件?

mySQL查询优化

mysql - Microsoft Access 和 MYSQL 数据类型比较

php - SQL/PHP 中 WHERE 和 AND 条件的组合

php - 从 mysql 列回显数据及其字段名称

PHP INSERT INTO MySQL 不起作用?

php - 从 php 使用 Selenium2 运行 Mink

c# - 在c# Visual Studio中的一个连接中创建多个mysql命令&where子句中的未知列

mysql - FOREIGN KEY 引用同一表的列。无法插入值