2

我有这个作为我的 PHP 代码:

$username=($_POST['username']);
$password=($_POST['password']);
$query="SELECT * from 'User' WHERE 'Username'='$username'";
mysql_query($query);

if($rows==0)
{
echo"<p> No rows found</p>";
}

else
{

while($row=mysql_fetch_array($query))
{
echo"rows found";
}

}
mysql_close($conn);

我的表单代码如下所示:

<form name="login" action="mydamhlogin.php" method="POST">
<p>Username:<input type="text" name="username"></p>
<p>Password<input type="password" name="password"></p>
<p><input type="submit" value="Login"></p>
</form>

我的数据库列称为用户名,我正在尝试选择与从表单中获取的 $username 匹配的行,但它始终不返回任何行,但这些行肯定在数据库中。

4

6 回答 6

9

您使用了错误的转义字符,因为单个 qoutes 使用反引号运算符,而不是像这样

$query="SELECT * from `User` WHERE `Username`='$username'";
$result = mysql_query($query);

$rows 在这里也是空的,你需要这样做

$rows = mysql_num_rows($result);

然后使用这个 $rows 变量来检查它的值。

于 2013-04-30T11:19:07.967 回答
3

用这个

    $query="SELECT * from `User` WHERE `Username`='$username'";

你不应该在表和列周围使用单引号,而是反引号

还添加这个

 $rows = mysql_num_rows(mysql_query($query));

在这条线之前

     if($rows==0)

编辑:

改变这个

   while($row=mysql_fetch_array(mysql_query($query)))
   {
   echo $row['username'];   // this if you want output username , if you want something else just write column name
   }

编辑2。

这是你的代码

   $username=($_POST['username']);
   $password=($_POST['password']);
   $query=mysql_query("SELECT * from `User` WHERE `Username`='$username'");
   $rows = mysql_num_rows($query);
  if($rows==0)
  {
  echo"<p> No rows found</p>";
 }

 else
{

while($row=mysql_fetch_array($query))
{
echo $row['username'];
}

}
mysql_close($conn);
于 2013-04-30T11:19:17.907 回答
0
$query="SELECT * from User WHERE Username='$username'";
$result=mysql_query($query);

if($result===false) //instead of $rows
...

编辑:

if( ($result) && (mysql_num_rows($result)>0) )//instead of $rows
...
于 2013-04-30T11:24:39.803 回答
0

在这里,您错过了许多问题,因为 $rows 没有任何值和 $query 字符串。我已经修改它使用:

$username=($_POST['username']);
$password=($_POST['password']);
$query="SELECT * from `User` WHERE `Username`='".$username."'";
$exeQuery = mysql_query($query);
$rows = mysql_num_rows($exeQuery)
if($rows==0)
{
echo"<p> No rows found</p>";
} else {

while($row=mysql_fetch_array($exeQuery))
{
echo"rows found";
}

}
于 2013-04-30T11:23:30.803 回答
-1

用这个,

$query="SELECT * from User WHERE `Username`='".$username."'";
于 2013-04-30T11:21:13.573 回答
-1

查询的语法错误试试这个

$query="SELECT * from User WHERE `Username`='".$username."'";
于 2013-04-30T11:24:33.053 回答