$sql='insert into tabl(';
$sql_vals='VALUES (';
$sql_params = array();
$sql_str='';
foreach ($_POST as $key => $value) {
if (substr($key,0,1)!='_') {
$sql=$sql.$key.',';
$sql_vals=$sql_vals.'?,';
$sql_params[]=$value;
}
}
if (substr($sql, -1)==',') $sql=mb_substr($sql, 0, -1);
if (substr($sql_vals, -1)==',') $sql_vals=mb_substr($sql_vals, 0, -1);
$sql=$sql.') ';
$sql_vals=$sql_vals.') ';
$sql=$sql.$sql_vals; //"insert into tabl(id,name,nomer) VALUES (?,?,?)
$_STATEMENT = $mysqli->prepare($sql);
$_STATEMENT->bind_param( $sql_str, $sql_params );
$_STATEMENT->execute();
проблема возникает в параметре $sql_str в строке bind_param( $sql_str, $sql_params ); так как неизвестно какого типа будут переменные в массиве. может я изобретаю велосипед, посоветуйте как можно это сделать по проще