Привет. Имеется БД с большим количеством колонок (а именно 36). Мне надо INSERT-тить туда данные которые приходят с $_POST запросом. Среди данных которые пришли с $_POST запросом есть обязательные (без которых я не смогу записать их в БД, т.к есть в них необходимость) и не обязательные (т.е дополнительная информация и если не внесу их в БД ничего страшного).
Вопрос собственно в слудующем, как осуществить наиболее эффективную проверку всего, что пришло мне $_POST. Сейчас я делаю следующее:
cоздал 2 массива (один с обязательными наименованиями колонок БД $base_key и другой со всеми $all_keys)
foreach -ом прогоняю весь пришедший $_POST и проверяю ключ на наличие в указанных выше массивах, а значение на не empty и все что проходит валидацию я добавляю к $into_sql
foreach($_POST as $key=>$value){
if(!empty($value) && in_array(strtoupper($key), $all_keys)) {
if(array_key_exists(strtoupper($key), $base_keys)) {$base_counter++; //считает количество обязательных колонок}
$into_sql .= "`".$key."`='".$this->db->safeSQL($value)."', ";
}
}
if($base_counter >= sizeOf($base_keys)){
$this->db->query("INSERT INTO `some_table` ".$into_sql." SERVER_DATE=NOW()");
}
В принципе все работает, как мне надо, единственное хотелось бы узнать у проффесионалов насколько эффективен данный код с точки зрения безопастности, скорости и надежности и есть ли более правильный вариант(или варианты)