我知道我应该使用准备语句并清理数据我只是检查 PDO 驱动程序
我只想知道为什么如果我只传递随机数据查询返回true?
请注意这个 PDO::query — 执行一条 SQL 语句,将结果集作为 PDOStatement 对象返回
$dbuser = 'root';
$dbpass = 'root';
$formpost = false;
try
{
$dbh = new PDO('mysql:host=127.0.0.1;dbname=loginexample', $dbuser, $dbpass);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
if(!empty($_POST['username']) && !empty($_POST['password']))
{
$formpost = true;
$username = $_POST['username'];
$password = $_POST['password'];
}
if($dbh && $formpost)
{
$sql= "SELECT username, password FROM user WHERE username='$username' AND password='$password'";
if($dbh->query($sql))
{
echo 'true';
}
}