简体   繁体   English

登录mysql_num_rows错误

[英]Login mysql_num_rows Error

This is my Check Login file... Its shows an error: Call to undefined function mysql_num_row() Whats the problem? 这是我的Check Login文件...显示错误:调用未定义函数mysql_num_row()出什么问题?

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1) {
    session_register("myusername");
    session_register("mypassword");
    header("location:login_success.php");
}

The error: 错误:

 Call to undefined function mysql_num_row()

Means that you are using mysql_num_row() when you should be using mysql_num_rows() . 意味着当您应该使用mysql_num_row()时,您正在使用mysql_num_rows() Note the s at the end. 注意s的结尾。

Call to undefined function mysql_num_row() this shows you have a typo: Call to undefined function mysql_num_row()这表明您有错字:

Change mysql_num_row() to mysql_num_rows() mysql_num_row()更改为mysql_num_rows()

You should also change your MySQL to MySQLi or PDO as MySQL is depreciated as of PHP 5.5. 您还应该将MySQL更改为MySQLi或PDO,因为MySQL自PHP 5.5起已弃用。

Example of MySQLi usage from your example: 您的示例中使用MySQLi的示例:

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysqli_query($sql);

$count=mysqli_num_rows($result);

As said your mysql_error you use mysql_num_row() instead mysql_num_rows(), but on your code I see mysql_num_rows(). 正如您所说的mysql_error,您使用mysql_num_row()代替mysql_num_rows(),但是在您的代码上我看到mysql_num_rows()。 Can you check it? 你能检查一下吗?

In general, I would advise you to use PDO extension instead of mysql, because mysql will be removed in the future version of PHP. 通常,我建议您使用PDO扩展而不是mysql,因为在将来的PHP版本中将删除mysql

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

Use this code can be unsafe for security reasons, depending on what type of validation pass these variables. 出于安全原因,使用此代码可能是不安全的,具体取决于通过哪种类型的验证来传递这些变量。 If you'll use PDO you can do the same code as most safety case: 如果您将使用PDO,则可以执行与大多数安全情况相同的代码:

// Initialize the database connection
$pdo = new PDO('mysql:host='.$your_hostname.';dbname=.'$your_db, $user, $pass, 
    array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
    )
);
$sql="SELECT count(username) FROM $tbl_name WHERE username=:myusername and password=:mypassword";

// Create prepared statement
$stm = $pdo->prepare($sql);
$stm->bindParam(':myusername', $myusername, PDO::PARAM_STR);
$stm->bindParam(':mypassword', $mypassword, PDO::PARAM_STR);
$stm->execute();

if($stm->fetchColumn()){
    session_register("myusername");
    session_register("mypassword");
    header("location:login_success.php");
}

最好使用mysqli ext:

$count=mysqli_num_rows($result);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM