【问题标题】:Parameterized SELECT queries via PDO? [duplicate]通过 PDO 进行参数化 SELECT 查询? [复制]
【发布时间】:2012-11-28 13:22:03
【问题描述】:

可能重复:
How to prevent SQL injection?

我正在尝试弄清楚如何通过 PDO 执行 SELECT 进行参数化查询,现在我得到了以下代码:

function user_login($username, $password) {
    $conn = connection_getConnection();

    $stmt = $conn->prepare("SELECT `password` FROM `users` WHERE `username` = :username");
    $row = $stmt-> #WHAT DO I DO HERE?
    if (empty($row)) {

    }
}

所以,我在我有点迷失的那条线上发表了评论。请从这里帮助我。

谢谢!

【问题讨论】:

    标签: php pdo


    【解决方案1】:

    PHP Manual 有一些很好的例子。

    为你:

    function user_login($username, $password) {
        $conn = connection_getConnection();
    
        $sql = "SELECT `password` FROM `users` WHERE `username` = :username";
        $stmt = $conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
        $query = $stmt->execute(array(':username' => $username));
        $rows = $query->fetchAll();
        if (empty($rows)) {
    
        }
    }
    

    【讨论】:

    • 这会返回一个行数组吗?
    • @Michael Perrenoud 你真的应该检查一下手册。
    • @MichaelPerrenoud:不;刚刚更新了我的答案。就像 jeroen 说的,你真的应该查看手册
    • @cegfault,老实说,这本手册对我个人来说很杂乱,但显然它是一个很好的资源。我会尽量花更多的时间在手册上。不过,这似乎是大量随机用户示例。 API 上的信息似乎有限。我是否误解了如何使用手册?请记住这一点,我有 12 年以上的 .NET 开发经验,所以开源社区对我来说是非常陌生的。
    • @MichaelPerrenoud:是的,有很多很好的用户示例,但在顶部附近有一个名为“示例”的部分,是该功能的基本示例。请尝试花更多时间熟悉它。
    猜你喜欢
    • 2010-10-20
    • 1970-01-01
    • 2019-09-22
    • 2015-10-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2018-06-20
    相关资源
    最近更新 更多