我该如何修复此代码(由于 MySql 已弃用)

How do I fix this code (due to MySql deprecated)

所以我写了这个登录系统,但是有一个很大的问题。每次当输入的值与代码相矛盾时,我试图让 $errors 打印出来,但它不起作用。这是用户登录码

<?php
if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = $_POST['password'];

if (empty($username) === true || empty($password) === true) {
        $errors[] = 'Fill out this field!';
    } else if (user_exists($username) === false) {
        $errors[] = 'Are you sure you\'ve registered?';
    } else if (user_active($username) === false) {
        $errors[] = 'you haven\'t activated your account!';
    } else {
    //Login com.
   }

print_r($errors);
}

?>

所以我看不出这里有任何问题。我怀疑问题出在这里。这是通用文件:

<?php
function sanitize($data) {
return mysqli_real_escape_string($data);
}
?>

这是用户代码:

<?php

function user_active($username, $con){ 
    $username = sanitize($username, $con);

    $q = "SELECT COUNT(`user_id`)
      FROM `users`
      WHERE `username` = '{$username}'
      AND `active` = 1";
 if($query = mysqli_query($con, $q)){
     return (mysqli_num_rows($query) > 0) ? true : false;
  } else {
     //TODO: Replace in production
      trigger_error('<p>Query ' . mysqli_error($con) . '</p>');
    }
}

  ?>

这是连接代码:

<?php
$con = mysqli_connect('localhost', 'root', '') or die(mysql_error());

mysqli_select_db($con, 'users');
?>

我知道 MySql 已被弃用,所以我转换为 MySqli 但它只是导致了更多问题,因为代码相互矛盾。任何帮助,将不胜感激。谢谢!

这样修改,

<?php
   function sanitize($data, $con) { //$con parameter added
     return mysqli_real_escape_string($con, $data); //$con parameter added
   } 
?>

Read out here