我对 SQL 和 PHP 还很陌生。
我正在尝试编写一个简单的登录脚本。我在 HTML 文档中有一个表单,我已经证明将正确的数据发布到所需的 2 个变量中,但是我的脚本在执行 SQL 时失败了...
我还在 mysqlWorkbench 中测试了 SQL,我得到了我想要的结果???
请帮忙。
这是我的脚本:
<?PHP
$odbc = mysql_connect('localhost', 'root', '') or die ("could not connect to database");
mysql_select_db('examresults', $odbc) or die("Could not find database");
// username and password sent from form
$username=$_POST['username'];
$password=$_POST['password'];
$sql='SELECT * FROM tuser where username = '.$username.' and password = '.$password.'';
$result = mysql_query($sql, $odbc) or die ("Error in SQL");
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
//If result matched username and password, table row must only equal 1 row
if($count==1)
{
header("location:exammenu.php");
}
else
{
echo 'username and password do not match';
}
?>
最佳答案
注意:mysql_*
功能已弃用,您不应再使用它们。您的代码也容易受到 SQL 注入(inject)攻击。
使用 <a href="http://php.net/manual/de/function.mysql-error.php" rel="noreferrer noopener nofollow">mysql_error</a>
而不是仅仅打印出“SQL 中的错误”会给我们(和你)一个更详细的 sql 错误消息。但很可能它失败了,因为你忘了输入 " "
围绕查询中的字符串。
$sql='SELECT * FROM tuser where username = "'.$username.'" and password = "'.$password.'"';
关于PHP登录脚本SQL错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415966/