我是否必须对所有 SQL 查询使用 PHP 准备语句?

问题描述 投票:0回答:1

从现在开始我只使用PHP准备语句进行SQL插入,但我想知道是否必须对所有SQL查询使用准备语句,如果是这样,我如何在下面的SELECT语句中使用它们?

// sql for category
$sql_category = "SELECT id as id_category, name as name_category
                FROM category";

$results = mysqli_query($conn, $sql_category);

if ($results === false) {
    echo mysqli_error($conn);
} else {
    $categories = mysqli_fetch_all($results, MYSQLI_ASSOC);
}

我很高兴得到正确的回答,如果您有任何建议或问题,请告诉我。

此代码目前可以正常工作。

php mysql insert prepared-statement
1个回答
0
投票

预防 SQL 注入是准备好的语句的一个好处功能,否则,它们只是准备好的语句...准备一次,使用不同的参数值执行多次。

话虽这么说,您可以在整个代码库中使用准备好的语句以保持一致性。你必须:

  • 使用
    mysqli::prepare
    创建一个
    mysqli_stmt
    对象
  • 使用
    mysqli_stmt::bind_param
    指定参数值(如果有)
  • 使用
    mysqli_stmt::execute
    执行语句
  • 使用
    mysqli_stmt::get_result
    得到结果
© www.soinside.com 2019 - 2024. All rights reserved.