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

196
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

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

186
SweetAlert при вхоже

SweetAlert при вхоже

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

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

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

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

226