无法访问 PHPMyAdmin 数据库的查询

Posted

技术标签:

【中文标题】无法访问 PHPMyAdmin 数据库的查询【英文标题】:Query to PHPMyAdmin Database Inaccessible 【发布时间】:2021-02-15 18:33:11 【问题描述】:

我正在尝试使用 phpMyAdmin 创建管理员登录,但我似乎无法查询数据库。我想知道这是否是我的代码的问题,或者这是否是我设置数据库的问题(缺少连接到数据库的内容)。

所以我一直在捕捉错误(例如 PHP 将 mysql 更改为 mysqli),但我无法正确连接到数据库。以下是我为设置数据库所做的一些后端方法:

    数据库已下载 PHPMyAdmin 可通过 localhost 访问 我在 PHPMyAdmin 上创建了一个名为“pcc_website_login”的数据库(使用用户名和密码登录) MySQL 当前处于活动状态 错误来自 mysqli_error/query/connect,并且都表明我无法正确连接到数据库。

下面是process.php的代码;我也有一个 login.php/style.css,但这些与数据库无关。



<?php
    // get values passed from form in login.php file
    $username = $_POST['user'];
    $password = $_POST['pass'];

    $username = stripcslashes($username);
    $password = stripcslashes($password);

    $db = mysqli_connect("localhost","root","","pcc_website_login");

    $result = mysqli_query($db, "select * from login where username = '$username' and password = '$password'") or die("Failed to query database " .mysqli_error());

    $row = mysqli_fetch_array($result);
    
    if ($row['username']== $username && $row['password'] == $password)
        echo "Login success!!! Welcome " .$row['username'];
     else 
        echo "Faild to login!";
    

?>

【问题讨论】:

这是一个很好的阅读:Is execution of sql in my php code safe? 【参考方案1】:

您可以测试连接到您的数据库。见例子。

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

if (!$link) 
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;


echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);
?>

【讨论】:

感谢您的建议。运行此测试后,我遇到以下错误消息:错误:无法连接到 MySQL。调试错误:2002 调试错误:没有这样的文件或目录。我再看看;现在我知道它不是代码,而是我的设置【参考方案2】:

试着用这个找出你的问题

$db = mysqli_connect("localhost","root","","pcc_website_login");
// Check connection
if ($db-> connect_errno) 
  echo "Failed to connect to MySQL: " . $db-> connect_error;
  exit();

【讨论】:

【参考方案3】:

嘿,看来您刚刚开始使用 PHP 和 MySQL……这是一次疯狂的冒险,尝试新事物做得很好。很少有咬指甲的错误,但他们的错误是我自己犯的,这是一种很好的学习方式,所以不要让它阻止你。

首先解决您的连接问题,除非您将其删除,否则您将丢失密码。

$db = mysqli_connect("localhost","root", "密码" ,"pcc_website_login");

您使用与 phpMyAdmin 相同的用户名和密码将起作用...因为毕竟 phpMyAdmin 是由您正在使用的相同类型的 php 运行的。

第二

不要使用stripcslashes,它不会保护你。使用mysqli_real_escape_string 代替w3chools.com has a good example

   $username = stripcslashes($username);  //NO, BAD
   $password = stripcslashes($password);
   $username = $db->mysqli_real_escape_string($username); // Better
   $password = $db->mysqli_real_escape_string($password);

第三

绝对永远不要出于任何原因将原始密码存储在数据库中......永远。

您可以通过加密函数将密码与用户名和另一个秘密进行哈希处理,然后将其存储。

最好还是使用 OAUTH2“用 google 登录”或“用 Facebook 登录”。要使用它,您将需要一个有效的域和正确的 SSL 证书,从本地计算机运行它也不会起作用,除非它不值得像托管那样便宜的麻烦

终于

不要害怕在您的项目中使用其他人的 PHP 代码。将作为程序开发人员与房屋开发商进行比较。在这种情况下,您将从客户正在寻找的类似平面图开始,然后对其进行调整以适应。使用像 Laravel 或 Symfony 这样的框架,或者像 Joomla 或 WordPress 这样的 CMS 会容易得多。

无论如何,玩得开心,继续玩,享受发现的乐趣,为你或朋友解决愚蠢但有用的问题,挑战自己,尽可能少地编写代码来实现这一目标。

【讨论】:

现代代码中没有理由再使用mysqli_real_escape_string。最好的建议是带有绑定参数的预处理语句。

以上是关于无法访问 PHPMyAdmin 数据库的查询的主要内容,如果未能解决你的问题,请参考以下文章

由于删除根数据库,无法访问 PHPmyadmin

无法通过 phpMyAdmin 访问数据库

Hibernate 无法访问 phpMyAdmin 插入的数据

我无法访问我的 phpMyadmin (MAMP)

我无法访问本地网络和 phpMyAdmin

无法访问phpmyadmin