2011-12-06 204 views
0

我无法使此SQL命令正常工作。 (我知道这个代码是不安全的,我只需要得到它的第一个工作日)。 当我运行此我得到的错误:“在‘where子句’未知列‘用户名​​’”MySQL/PHP检查登录详细信息

$login_username = $_POST['username']; 
$login_password = $_POST['password']; 

$lc = "SELECT * FROM user WHERE username = $login_username AND password = $login_password"; 
$lcr = mysql_query($lc); 
$lcgr = mysql_num_rows($lcr)or die(mysql_error()); 

回答

1

如果你是得到这个错误,这意味着你的用户表没有名为用户名的列。

其次,您的代码可以打开到SQL Injection。您应该验证并确保您的$ _POST值。

另外,您应该对mysql_query执行die检查,而不是mysql_num_rows

0

看来您的查询中的username不是正确的列名称。你可以检查一下吗?

0

你在'user'表中有'username'这个列吗?请尝试DESC user,以确保您的字段名称在表格中,并且您可以相应地修改您的查询。

你也想用引号封装你的字符串(推测用户名和密码是字符串)。

你已经提到了知道你的代码是不安全的,所以我会留下任何注射解说了:)

0

第一 - 你有一个在你的数据库用户表命名为“用户名”栏?

第二=将$ login_username和$ login_password放在单引号中,因为它们是字符串,对吧?

1

尝试使用引号中查询:

$lc = "SELECT * FROM user WHERE username = '$login_username' AND password = '$login_password'"; 
+0

谢谢!这让它工作。 – user1082585