Již jste chráněni proti vkládání SQL, protože používáte mysqli_stmt_bind_params, které za vás správně uniknou.
Edit.Můžete přejít na nějaký databázový rámec, abyste měli čistý a krásný kód.
Jinak... tohle je takový starý špagetový styl... ale miluju to :D
Je docela snadné rozšířit váš kód tak, aby pracoval s neznámým počtem parametrů. Měli byste jednoduše zacyklit na svých parametrech a současně 1. vytvořit řetězec dotazu s otazníkem a přidat parametry do pole, které budete předat maxdb_stmt_bind_param (zdroj $stmt , řetězec $types , pole &$var ).
Takže by to vypadalo takto. Předpokládá, že je tam alespoň JEDEN parametr (ale vyhnout se tomu je triviální).
$sql = "SELECT * FROM tbl_data WHERE ";
$and = '';
$types = '';
$parameters = array();
foreach($_POST as $k => $v) {
// check that $k is on your whitelist, if not, skip to the next item
$sql .= "$and $k = ?";
$and = " AND ";
$parameters[] = $v;
$types .= 's';
}
$stmt_query = mysqli_prepare($db, $sql);
mysqli_stmt_bind_params($stmt_query, $types, $parameters);