我无法让此SQL命令正常工作。 (我知道这段代码不安全,我只需要让它先工作。) 当我运行此操作时,我收到错误:“where子句”中的“未知列'用户名'”
$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());
答案 0 :(得分:1)
如果您收到该错误,则表示您的用户表中没有名为username的列。
其次,您的代码向SQL Injection开放。您应该验证并保护$ _POST值。
此外,您应该对die
而不是mysql_query
执行mysql_num_rows
检查。
答案 1 :(得分:1)
尝试使用查询中的引号:
$lc = "SELECT * FROM user WHERE username = '$login_username' AND password = '$login_password'";
答案 2 :(得分:0)
您的查询中的username
似乎不是正确的列名。你能查一下吗?
答案 3 :(得分:0)
您的“用户”表格中是否有“用户名”列?试试DESC user
,这样您就可以确定表格中的字段名称,并相应地修改您的查询。
您还需要在引号中封装您的字符串(可能是用户名和密码是字符串)。
您已经提到知道您的代码不安全所以我会留下任何注释评论:)
答案 4 :(得分:0)
首先 - 你有一个名为"用户名"的列在数据库的用户表中?
第二个=将$ login_username和$ login_password放在单引号中,因为它们是字符串,对吗?