PHP登录脚本SQL错误

标签 php mysql sql authentication

我对 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/

相关文章:

PHP cURL - 如何模拟与用户完全相同的请求?

php - 我不知道如何在 SQL 中使用 $where 来处理选定的类别

mysql DATE_FORMAT() 之间给了我错误

php - 添加超链接到 MYSQL 支持的 PHP 搜索引擎

javascript - 在 Laravel 中获取基于 Ajax 的数据

mysql - 如何将数据导入内存数据库?

mysql - 如何在 IN 子句 sql 中使用限制

sql - 为什么 SQL 评估的 WHERE 子句为 False?

php - 这会阻止我的页面呈现吗?

sql - sql中的朴素贝叶斯计算