Вставить все значения $_POST в базу данных

259
07 октября 2018, 20:00

Сейчас в БД происходит запись так:

$add = mysql_query("INSERT INTO `products` (`title`, `descr`, `price`, `imgs`, `date`, `cat`, `type`) VALUES ('{$add["title"]}', '{$descr}', '{$price}', '{$imgs}', '{$date}', '{$cat}', '{$type}');");

Где каждая переменная - это $_POST['title'] и т.д.

Как сделать, чтобы автоматически все значения $_POST добавлялись в базу?

И мне нужно, чтобы для каждого значения присутствовала фильтрация, например:

$title = $_POST['title'];
$title = stripslashes($title);
$title = htmlspecialchars($title);
$title = trim($title);
Answer 1

INSERT

$sqlFields = [];
$sqlValues = [];
foreach ($_POST as $key => $value) {
    $param = stripslashes($value);
    $param = htmlspecialchars($param);
    $param = trim($param);
    $sqlFields[] = $key;
    $sqlValues[] = $param;
}
$sql = "INSERT INTO `products` (`" . implode('`, `', $sqlFields) . "`) VALUES ('" . implode("', '", $sqlValues) . "');";

UPDATE

$sqlFields = [];
foreach ($_POST as $key => $value) {
    $param = stripslashes($value);
    $param = htmlspecialchars($param);
    $param = trim($param);
    $sqlFields[] = $key . "='" . $value . "'";
}
$sql = "UPDATE products SET " . implode(', ', $sqlFields) . ";";
READ ALSO
Динамическое меню на YII2

Динамическое меню на YII2

Доброго всем времени суток

244
SweetAlert при вхоже

SweetAlert при вхоже

Как показать модальное окно от SweetAlert при входе на сайт?

267
sf-menu sf-js-enabled sf-arrows убрать вверху сайта

sf-menu sf-js-enabled sf-arrows убрать вверху сайта

Недавно заметил надпись "sf-menu sf-js-enabled sf-arrows" в самом вверху сайта fashion-milencom

301