Php I';我试图在我的MySQL数据库中搜索一个名字。它';有什么建议吗?
我使用000webhost作为我的php服务器,使用phpmyadmin作为我的数据库。我试图让它这样当你输入一个用户名,它输出的密码。有人能给我一些建议吗?那太好了 我的html:Php I';我试图在我的MySQL数据库中搜索一个名字。它';有什么建议吗?,php,html,mysql,database,phpmyadmin,Php,Html,Mysql,Database,Phpmyadmin,我使用000webhost作为我的php服务器,使用phpmyadmin作为我的数据库。我试图让它这样当你输入一个用户名,它输出的密码。有人能给我一些建议吗?那太好了 我的html: <!DOCTYPE html> <html> <body> <form action="Login.php" method="GET"> <input type="text" name="query" /> <inp
<!DOCTYPE html>
<html>
<body>
<form action="Login.php" method="GET">
<input type="text" name="query" />
<input type="submit" value="Search" />
</form>
</body>
</html>
我的php:
<?php
$host='localhost';
$user='id1783920_123456';
$pass='';
$db='id1783920_mydb';
/* $pass is the password and I know that's not the problem, I just don't want to share it */
$con=mysqli_connect($host,$user,$pass,$db);
if($con) {
echo 'connected successfully to id1783920_mydb database';
}
$term = $_GET['query'];
$sql = "SELECT password FROM Signup WHERE CONCAT( username) LIKE '%$term%'";
$result = $con->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc()
echo "password: " . $row["password"];
} else {
echo "0 results";
}
$conn->close();
?>
您可以试试这个
$mysqli = new mysqli($host,$user,$pass,$db);
if ($mysqli->connect_errno) {
//error
}
$sql = "SELECT password FROM your_table WHERE user = $name";
if (!$result = $mysqli->query($sql)) {
//something didn't go right
}
if ($result->num_rows === 0) {
//no result
}
//you should have the password in here
$password = $result->fetch_assoc();
$result->free();
$mysqli->close();
连接到数据库后,您应该检查是否确实进行了连接,如果没有,则会出现哪些错误:
if ($mysqli->connect_errno) {
var_dump($mysqli->connect_errno);
var_dump($mysqli->connect_error);
}
您需要在某个地方编写SQL,不管它是在变量中还是直接在查询中
$sql = "SELECT password FROM your_table WHERE user = $name";
$mysqli->query($sql)
-这将执行查询。如果您的代码最终出现在我提供的中,如果出现问题。同样,您可以在那里设置打印以查看错误
if (!$result = $mysqli->query($sql)) {
var_dump($mysqli->connect_errno);
var_dump($mysqli->connect_error);
}
检查是否有任何结果
if ($result->num_rows === 0) {
echo "No results";
}
$result->fetch_assoc()代码>-这将“获取”结果。您可以将其设置为变量:
$password = $result->fetch_assoc();
然后不要忘记释放结果并关闭连接:
$result->free();
$mysqli->close();
您的PHP文件应如下所示:
<?php
$host='localhost';
$user='id1783920_123456';
$pass='';
$db='id1783920_mydb';
$con=mysqli_connect($host,$user,$pass,$db);
if($con) {
echo 'connected successfully to id1783920_mydb database';
}
$term = $_GET['query'];
$sql = "SELECT password FROM Signup WHERE CONCAT( username) LIKE '%$term%'";
$result = $con->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "password: " . $row["password"];
} else {
echo "0 results";
}
$conn->close();
?>
您的查询不在任何代码中。当然不行了。好吧,我是新手,你能告诉我怎么做吗?互联网上有很多如何做的手册。使用它。永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用密码\u hash()
。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。您要问的是PHP/MySQL 101,它有上千个教程和学习网站,比如codecademy.com谢谢!我必须更改html文件中的任何内容吗?html文件中不需要任何更改。同样,我在代码中遇到了以下错误:解析错误:语法错误,第22行出现意外的“echo”(T_echo)。请发布您的代码,让我看看,有什么问题吗?请注意,此代码完全不安全,并且有SQL注入。@Jay Blanchard,当我写最初的答案时,我在手机上,如果我真的用解释来完成答案,那将是一件痛苦的事情。我们发布答案的平台不重要,我或其他任何人都不可能知道你发布的是哪个平台。答案就是问题所在,我们应该避免在没有解释的情况下回答。¯\_(ツ)_/¯