【发布时间】:2014-05-22 22:00:45
【问题描述】:
我正在尝试检查 myusername 和 mypassword 是否在数据库中,以及它们是否正在打印结果。如果结果与数据库中的内容匹配,我无法返回并显示结果,有人可以帮忙吗?
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
//echo $myusername;
//echo $mypassword;
$stmt = $db->prepare('SELECT * FROM ADMIN_LOGIN WHERE USERNAME = $myusername AND PASSWORD = $mypassword');
//var_dump($stmt->readOnly()); // -> true
【问题讨论】:
-
你很容易受到sql injection attacks的攻击,这尤其糟糕,因为你已经在使用准备好的语句了。
-
这就是我想要避免的(sql 注入攻击),你建议我如何让这段代码成为 sql 注入证明?
-
为此,我只需转到 php.net/pdo 并单击
prepare- 那里会有一个示例。 PHP 手册非常适合初学者(如果有时过于详细) - 只需输入php.net/thing,它就会搜索您。 -
我假设您正在使用 PDO,所以我重新标记了这个问题。如果您使用不同的引擎,请对其进行编辑。
-
这个问题似乎跑题了,因为答案在documentation。