Я буду считать, что имена полей в форме также являются именами столбцов таблицы, упрощенное решение таково:
$input_names = '';
$input_values = '';
//Iterate the POST table to get the input names and values
foreach($_POST as $input_name => $input_value){
// escaping is always important
$input_names .= mysqli_real_escape_string ( $con, $input_name ) . ",";
$input_values .= "'" .mysqli_real_escape_string ( $con, $input_value ) . "',";
}
// Remove trailing comma
$input_names = rtrim( $input_names, "," );
$input_values = rtrim( $input_values, "," );
$sql = "INSERT INTO table_name ( $input_names ) VALUES ( $input_values )";
if ( $con->query($sql) === TRUE ) {
// Success
} else {
// Failure
}
В случае, если есть поля ввода, которые не являются частью таблицы,или фактически в любом случае проверка может произойти в части, формирующей поле.Например:
$field_array = ["field1", "field2", "field3"];
foreach($_POST as $input_name => $input_value){
// Skip field if the name is not in the $field_array
if(!in_array( $input_name, $field_array ){
continue;
}
$input_names .= mysqli_real_escape_string ( $con, $input_name ) . ",";
$input_values .= "'" .mysqli_real_escape_string ( $con, $input_value ) . "',";
}
Приведенный выше код не проверен и должен использоваться только в качестве справочного.