使用Login调用未定义的函数mysql_query()

8 php

当我执行下面的PHP代码时,我得到致命错误,我不知道如何解决它.

谢谢您的帮助

错误

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

    <?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 ";
    }

    ?>
Run Code Online (Sandbox Code Playgroud)

The*_*lob 20

你正在混合mysql和mysqli

改变这些行:

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

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

  • 请注意,此代码**容易受到[SQL注入](https://en.wikipedia.org/wiki/SQL_injection)攻击**,基本上任何人都可以查看和修改您的数据库。请考虑使用**准备好的语句**,而不是简单地更改 API。请参阅[如何防止 PHP 中的 SQL 注入?](/sf/ask/4212211/) 了解如何执行此操作。 (3认同)