无法访问 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 数据库的查询的主要内容,如果未能解决你的问题,请参考以下文章