Задать вопрос

Как произвести рефакторинг update'a в базу?

Ребят, приветствую.
Учусь рефакторить код. Столкнулся с этим участком, и не могу понять, можно ли этот участок упростить, или это так и должно быть? Просто это только один из участков, а таким весь файл забит.
if (isset($_POST['marks_edit'])) {
	if (isset($_POST['name'])) {
		mysqli_query($CONNECT, "UPDATE `marks` SET `name` = '$_POST[name]' WHERE `id` = $_POST[mark_id]");
	}

	if (isset($_POST['status'])) {
		$_POST['status'] = FormChars($_POST['status']);
		mysqli_query($CONNECT, "UPDATE `marks` SET `status` = '$_POST[status]' WHERE `id` = $_POST[mark_id]");
	}

	if (isset($_POST['level']) AND $_POST['level'} > 0 AND $_POST['level'] <= 8) {
		$_POST['level'] = FormChars($_POST['level']);
		mysqli_query($CONNECT, "UPDATE `marks` SET `level` = '$_POST[level]' WHERE `id` = $_POST[mark_id]");
	}

	if (isset($_POST['width'])) {
		$_POST['width'] = FormChars($_POST['width']);
		mysqli_query($CONNECT, "UPDATE `marks` SET `width` = '$_POST[width]' WHERE `id` = $_POST[mark_id]");
	}

	if (isset($_POST['type'])) {
		$_POST['type'] = FormChars($_POST['type']);
		mysqli_query($CONNECT, "UPDATE `marks` SET `type` = '$_POST[type]' WHERE `id` = $_POST[mark_id]");
	}
}
  • Вопрос задан
  • 107 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@RidgeA
1. Пройтись foreach по массиву $_POST, выбрать нужные занчения, сформировать строку для "SET" и сформировать запрос.
2. Вставлять данные из POST в mysql запрос - огромная дырища в приложении - могут запросто дропнуть базу, использйте, хотя бы filter_var и PDO
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы