无法执行SELECT查询

时间:2013-05-12 20:22:25

标签: php mysql

我的脚本应该将用户登录到我的数据库中。

它通过检查用户名和密码是否与人员表上的行匹配来完成此操作。

如果发现用户名和密码确实存在,则会在cookie上存储用户名和密码。

我遇到的问题是用户没有登录。

通过echo方法识别出,单击按钮

后,以下变量具有以下值

$ row = 0 $ username =表单上用户名字段中的内容

这似乎表明查询存在问题

<?php

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error connecting to mysql');

$dbname = 'the_shop';
mysql_select_db($dbname);

if(isset($_GET['submit']))
{
    $username = $_GET['username'];
    $password = md5($_GET['password']);
    echo "$username + $password <br />";

    // insert user into db
//  $sql = "INSERT INTO `logindb`.`users` (`id`, `username`, `password`) VALUES (NULL, '".$username."', '".$password."');";
//  echo $sql;
//  $result = mysql_query($sql);

    // getting user from db
    $query  = "SELECT Username, Password FROM staff WHERE `Username`='.$username.'";
    $result = mysql_query($query)
    or die(mysql_error());
    $num=mysql_numrows($result);
    echo $num;
    if($num <= 0) {
  echo "login not successful";
  echo "$username";
}
else
{
    $_SESSION['username'] = '$username';
    $_SESSION['password'] = '$password';
//header("Location:Admin_Control_panel.php");
}
}
?>

4 个答案:

答案 0 :(得分:3)

这一行:

$query  = "SELECT Username, Password FROM staff WHERE `Username`='.$username.'";

需要:

$query  = "SELECT Username, Password FROM staff WHERE `Username`='$username'";

由于您正在使用double-quotesPHP正在解析双引号字符串中的$值,因此无需连接字符串。

答案 1 :(得分:3)

对于初学者,您的$query中包含不需要的字符(.)。

"SELECT Username, Password FROM staff WHERE `Username`='.$username.'"
                                                        ^         ^

应该是。

"SELECT Username, Password FROM staff WHERE `Username`= '$username'"

没有点。

答案 2 :(得分:2)

您的查询应该是:

$query = 'SELECT Username, Password FROM staff WHERE Username = ' . $username;

我建议将PDO(PHP数据对象)作为您正在使用的方法的替代方法并对变量进行参数化。

http://php.net/manual/en/book.pdo.php

答案 3 :(得分:1)

$query  = "SELECT Username, Password FROM staff WHERE `Username`='$username'";