Вече сте защитени срещу sql инжекция, тъй като използвате mysqli_stmt_bind_params, които ще избягат правилно за вас.
Редактиране. Можете да преминете към някаква рамка на база данни, за да имате чист и красив код.
Иначе... това е толкова стар стил на спагети... но ми харесва :D
Доста лесно е да разширите кода си, за да работи с неизвестен брой параметри. Трябва просто да завъртите вашите параметри и в същото време 1. да изградите своя низ за заявка с нотация на въпросителния знак и да добавите вашите параметри към масив, който ще предавате на maxdb_stmt_bind_param ( ресурс $stmt , низ $types , масив и $var ).
Така че би изглеждало така. Предполага се, че има поне ЕДИН параметър (но е тривиално да се избегне това).
$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);