我创建了一个登录表单和一个处理sql连接的连接页面。每次打印“查询未检索”。我想使用文本框中给出的登录详细信息运行查询。如果为真,则必须将第一个名称存储在会话中。
这是我用来链接php的数据库的结构
数据库z1760359
表成员
member ID firstName lastName userName password
的index.php
<html>
<head>
<style>
#login
{
position:absolute;
top: 30%;
bottom: 30%;
left:30%;
right:30%;
margin: 0px auto;
}
</style>
</head>
<body>
<?php
session_start();
echo"<center>";
echo"<div id=\"login\">";
echo"<form method=\"POST\" action=\"connectivity.php\">";
echo"<b>Username</b> <input type =\"text\" name=\"username\">";
echo"<br/><br/>";
echo"<b>Password</b> <input type =\"password\" name=\"password\">";
echo"<br/><br/>";
echo"<input type=\"submit\" value=\"submit\">";
echo"</div>";
echo"</center>";
?>
</body>
</html>
connectivity.php
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$host="localhost";
$uname="root";
$pword="";
$db="z1760359";
$conn=mysqli_connect($host,$uname,$pword,$db) or die("Oops something went wrong");
session_start();
$query="Select firstName from member where userName=$username, password=$password";
if(!empty($_POST['username']))
{
$query_first=mysqli_query($conn,$query) or die(" Query not retrieved");
$query_second=mysqli_fetch_assoc($query_first);
if(!empty($row['username']) AND !empty($row['password']) )
{
$_SESSION['user_name']=extract($query_second);
}
else
{
echo"wrong password";
}
}
else
{
echo"please enter the password or username";
}
echo"$password";
echo"<br>";
echo"$username";
?>
答案 0 :(得分:3)
如果您不使用预准备语句,则必须在mysql中使用单引号:
$query="Select firstName from member where userName='$username' AND password='$password'";
此外,您必须在条件之间使用逻辑运算符。
答案 1 :(得分:3)
在你的代码&#34; mysqli_query&#34;返回false,因此您应该使用mysqli_error()打印有关错误的更多详细信息并相应地继续前进。
答案 2 :(得分:0)
在我的mysql查询中使用变量时使用单引号
$query="Select `firstName` from `member` where `userName`='".$username."' and `password`='".$password."'";
答案 3 :(得分:0)
查询错误。在比较值时,您缺少单引号,而您缺少AND运算符。
$query="Select firstName from member where userName='$username' and password='$password'";
答案 4 :(得分:0)
您的查询中存在错误。 条件应该用AND分隔,而不是用逗号分隔,你应该在字符串值周围添加单引号。 所以你的查询应该是:
Select firstName from member where userName='$username' AND password='$password'
而不是:
Select firstName from member where userName=$username, password=$password