PHP登录页面因root用户错误而拒绝访问,并期望参数1为mysqli,bool给定[重复]

Posted

技术标签:

【中文标题】PHP登录页面因root用户错误而拒绝访问,并期望参数1为mysqli,bool给定[重复]【英文标题】:PHP login page giving access denied for root user error and expects parameter 1 to be mysqli, bool given [duplicate] 【发布时间】:2020-08-04 23:56:54 【问题描述】:

所以我正在创建我的第一个网站并尝试通过 xaamp 连接到我在 apache 服务器上运行的 mysql 数据库

我的代码在下面,当我尝试登录时它给出的错误,还附上了数据库的屏幕截图

   include("config.php");
   session_start();

   if($_SERVER["REQUEST_METHOD"] == "POST") 
      // username and password sent from form 

      $myusername = mysqli_real_escape_string($db,$_POST['username']);
      $mypassword = mysqli_real_escape_string($db,$_POST['password']); 

      $sql = "SELECT id FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";
      $result = mysqli_query($db,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
      $active = $row['active'];

      $count = mysqli_num_rows($result);

      // If result matched $myusername and $mypassword, table row must be 1 row

      if($count == 1) 
         session_register("myusername");
         $_SESSION['login_user'] = $myusername;

         header("location: index.html");
      else 
         $error = "Your Login Name or Password is invalid";
      
   
?>

config.php:

   define('DB_SERVER', '127.0.0.1');
   define('DB_USERNAME', 'root');
   define('DB_PASSWORD', 'rootpassword');
   define('DB_DATABASE', 'database');
   $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>

错误:

警告:mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in D:\xampp\htdocs\Website\Websiteassesment\config.php on line 6

警告:mysqli_real_escape_string() 期望参数 1 为 mysqli,布尔值在第 8 行的 D:\xampp\htdocs\Website\Websiteassesment\loginform.php 中给出

警告:mysqli_real_escape_string() 期望参数 1 为 mysqli,布尔值在第 9 行的 D:\xampp\htdocs\Website\Websiteassesment\loginform.php 中给出

警告:mysqli_query() 期望参数 1 为 mysqli,布尔值在 D:\xampp\htdocs\Website\Websiteassesment\loginform.php 第 12 行给出

警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,在第 13 行的 D:\xampp\htdocs\Website\Websiteassesment\loginform.php 中给出 null

注意:尝试访问第 14 行 D:\xampp\htdocs\Website\Websiteassesment\loginform.php 中 null 类型值的数组偏移量

警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,在第 16 行的 D:\xampp\htdocs\Website\Websiteassesment\loginform.php 中给出 null

任何帮助将不胜感激

【问题讨论】:

您是否搜索过错误?问题从第一条错误消息开始。您也可以查阅副本和谷歌。你会看到一个“工具”有多好;-) 不要存储纯文本密码,改用password_hash() 【参考方案1】:

该错误表示您的 mySQL 登录凭据不正确。检查用户名root和密码rootpassword是否正确。

【讨论】:

正确在哪里?对不起,我真的很陌生 您的数据库登录详细信息在config.php 中定义。错误意味着细节不正确。如果您在本地环境即您的计算机上,密码可能是一个空字符串,因此修改为define('DB_PASSWORD', '');

以上是关于PHP登录页面因root用户错误而拒绝访问,并期望参数1为mysqli,bool给定[重复]的主要内容,如果未能解决你的问题,请参考以下文章

错误 1698 (28000): 拒绝用户 'root'@'localhost' 的访问

用户 'root'@'localhost' 的访问被拒绝(使用密码:否)

错误:(1045)用户'root'@'localhost'的访问被拒绝(使用密码:否)

PHP和MySQLi错误-用户'root'@'localhost'的访问被拒绝(使用密码:否)[重复]

用户'root'@'localhost'的Php Post插入错误访问被拒绝(使用密码:YES)

如何显示拒绝访问而不是重定向到登录页面?