首页 > 解决方案 > 在 PDO 中转换 $_GET 值

问题描述

我写了一个基本函数来加入 3 个类似的表id

    {
        $id = $_GET["id"];
        $product_edit_query = $this->DB->query('
            SELECT * FROM products
            LEFT JOIN products_ingredients
            ON products_ingredients.product_id = products.product_id
            LEFT JOIN products_languages
            ON products_languages.product_id = products.product_id
            WHERE products.product_id = 73
        ');
        $product_edit = $product_edit_query->fetch();
        $this->smarty->assign('product_edit', $product_edit);
    }

在我的请求的最后一行,我有WHERE products.product_id = 73. 73 是硬编码的,应该是 的值$_GET["id"],但是我尝试的所有方法都无法在 PDO 中转换它,有什么帮助吗?

标签: sqlpdo

解决方案


朋友给出的解决方案:

    {
        $stmt = $this->DB->prepare('
            SELECT * FROM products
            LEFT JOIN products_ingredients
            ON products_ingredients.product_id = products.product_id
            LEFT JOIN products_languages
            ON products_languages.product_id = products.product_id
            WHERE products.product_id = :id
        ');
        $stmt->execute([':id' => $_GET["id"]]);
        $get_product_base = $stmt->fetch();
        $this->smarty->assign('get_product_base', $get_product_base);
    }

推荐阅读