下面的代码可以有效防止 sql 注入吗 ?

发布于 2022-09-01 06:45:29 字数 566 浏览 10 评论 0

下面的代码可以有效防止 sql 注入吗 ?

大家一般是怎么做的 .

<?php

$dbh = new PDO("mysql:host=localhost; dbname=mydb", "root", "pass");

$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); //禁用prepared statements的仿真效果
$dbh->exec("set names 'utf8'"); 

$sql="select * from table where username = ? and password = ?";

$query = $dbh->prepare($sql); 

$exeres = $query->execute(array($username, $pass)); 

if ($exeres) { 

    while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
        print_r($row);
    }
    
}
$dbh = null;

?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

翻身的咸鱼 2022-09-08 06:45:29

建议这样写, 能更有效的防注入

......

$sql="select * from table where username = ?";

......


    while ($row = $query->fetch(PDO::FETCH_ASSOC) && $row['pass'] == $pass) {
        print_r($row);
    }
月依秋水 2022-09-08 06:45:29

你的代码完全可以防止SQL注入,因为PDO就是SQL预处理的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文