mysql_write_array - запись массива данных в таблицу MySQL

// функция записывает данные в таблицу
// если id нет или =0 будет добавлена запись
// функция маскирует недопустимые символы, учитывает get_magic_quotes_gpc
// если utf=true, то производится преобразование из UTF-8 в win-1251
function mysql_write_array($tbl,$arr, $utf=false){
  $Columns=[];
  $result=mysql_query("SHOW COLUMNS FROM `{$tbl}`");
  while($col = mysql_fetch_row($result))$Columns[$col[0]]=$col[1]; // индекс - имя, значение - тип
  if($utf||get_magic_quotes_gpc())
     foreach ($Columns as $key => $value)
    if(isset($arr[$key])){
    if(strpos($value, array('char','text'))!==false){
        if(get_magic_quotes_gpc())$arr[$key]=stripslashes($arr[$key]);
        if($utf)$arr[$key]=trim(@iconv("UTF-8", "windows-1251//IGNORE", $arr[$key]));
    }if(strpos($value, 'int')!==false)$arr[$key]=intval($arr[$key]);
    elseif(strpos($value,'date')!==false)$arr[$key]=date("Y-m-d", $arr[$key]);
    elseif(strpos($value,'time')!==false)$arr[$key]=date("Y-m-d H:i:s", $arr[$key]);
    elseif(strpos($value,'floatval')!==false)$arr[$key]=str_replace(',','.',floatval($arr[$key]));
    }
   $add='';
   if(isset($arr['id']) && intval($arr['id'])>0){
   foreach ($Columns as $key => $value){
    if($key=='id'){}
        elseif(isset($arr[$key]))$add.=','.$key.'="'.$arr[$key].'"';}
   if($add)$add='UPDATE IGNORE '.$tbl.' SET '.substr($add,1).' WHERE id="'.intval($arr['id']).'"';
   else return false;
   }else{$add1='';
   foreach ($Columns as $key => $value){
    if($key=='id'){}
        elseif(isset($arr[$key])){
        $add.=','.$key;
        $add1.=',"'.$arr[$key].'"';}
   }
   if($add)$add='INSERT INTO '.$tbl.' ('.substr($add,1).') VALUES ('.substr($add1,1).')';
   else return false;
   }
echo $add.'<br>';
sql($add);
return mysql_affected_rows()>0;
}

Пример использования:

if (isset($_POST['id'])) {
  if(mysql_write_array('user', $_POST)) echo " Сохранил запись!";
  else echo "Ошибка записи ".$_POST['id']."!";

.