Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
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']."!";
.
Прокомментировать/Отблагодарить