从现在开始我只使用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);
}
我很高兴得到正确的回答,如果您有任何建议或问题,请告诉我。
此代码目前可以正常工作。
预防 SQL 注入是准备好的语句的一个好处功能,否则,它们只是准备好的语句...准备一次,使用不同的参数值执行多次。
话虽这么说,您可以在整个代码库中使用准备好的语句以保持一致性。你必须:
mysqli::prepare
创建一个 mysqli_stmt
对象mysqli_stmt::bind_param
指定参数值(如果有)mysqli_stmt::execute
执行语句mysqli_stmt::get_result
得到结果