php 使用登录调用未定义的函数 mysql_query()

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/39493105/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 01:55:23  来源:igfitidea点击:

Call to undefined function mysql_query() with Login

php

提问by The One and Only ChemistryBlob

When i execute my PHPcode below i get a Fatal errorand i'm not sure how to resolve it.

当我在下面执行我的PHP代码时,我收到一个致命错误,我不知道如何解决它。

Thank you for your help

感谢您的帮助

The Error

错误

PHP Fatal error: Uncaught Error: Call to undefined function mysql_query() in /Applications/MAMP/htdocs/lprapp/config.php:23 Stack trace:#0 {main} thrown in /Applications/MAMP/htdocs/lprapp/config.php on line 23

PHP 致命错误:未捕获的错误:调用 /Applications/MAMP/htdocs/lprapp/config.php:23 中未定义的函数 mysql_query() 堆栈跟踪:#0 {main} 抛出在 /Applications/MAMP/htdocs/lprapp/config 中。第 23 行的 php

Code

代码

    <?php

    $user = 'root';
    $password = 'root';
    $db = 'inventory';
    $host = 'localhost';
    $port = 8888;

    $link = mysqli_init();
    $success = mysqli_real_connect(
       $link,
       $host,
       $user,
       $password,
       $db,
       $port
    );

    ?>
    <?php
    $username = $_POST['username'];
    $password = $_POST['password'];
    $sql = mysql_query("SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'");
    $row = mysql_num_rows($sql);
    if($rom > 0 )
    {
      session_start();
      $_SESSION['username'] = $_POST['username'];
      $_SESSION['password'] = $_POST['password'];
      echo "login done";
    }else {
      echo "fail login ";
    }

    ?>

回答by The One and Only ChemistryBlob

You are mixing mysql and mysqli

您正在混合使用 mysql 和 mysqli

Change these lines:

更改这些行:

$sql = mysql_query("SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'");
$row = mysql_num_rows($sql);

to

$sql = mysqli_query($success, "SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'");
$row = mysqli_num_rows($sql);

回答by FrankSunnyman

You are mixing the deprecated mysqlextension with mysqli.

您正在将已弃用的mysql扩展与mysqli混合使用。

Try something like:

尝试类似:

$sql = mysqli_query($success, "SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'");
$row = mysqli_num_rows($sql);

回答by Kostya Zhevlakov

What is your PHP version? Extension "Mysql" was deprecated in PHP 5.5.0. Use extension Mysqli (like mysqli_query).

你的PHP版本是什么?PHP 5.5.0 中不推荐使用扩展“Mysql”。使用扩展 Mysqli(如 mysqli_query)。

回答by YaBCK

I would recommend that start using mysqli_() and stop using mysql_()

我建议开始使用 mysqli_() 并停止使用 mysql_()

Check the following page: LINK

检查以下页面:LINK

Warning This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: mysqli_affected_rows() PDOStatement::rowCount()

警告 此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中删除。相反,应使用 MySQLi 或 PDO_MySQL 扩展。另请参阅 MySQL:选择 API 指南和相关常见问题以了解更多信息。此函数的替代方法包括: mysqli_affected_rows() PDOStatement::rowCount()

Try and use mysqli_()Or PDO

尝试使用mysqli_()PDO