Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

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


<?php
// функция записывает данные в таблицу
// если id нет или =0 будет добавлена запись
// функция маскирует недопустимые символы, учитывает get_magic_quotes_gpc
// если utf=true, то производится преобразование из UTF-8 в win-1251
function mysql_write_array($tbl,$arr$utf=false){
  
$Columns=array();
  
$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;
}
?>
Скопировать в буфер

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


<?php
if (isset($_POST['id'])) {
  if(
mysql_write_array('user'$_POST)) echo " Сохранил запись!";
  else echo 
"Ошибка записи ".$_POST['id']."!";
?>
Скопировать в буфер

© Copyright 2008-2012 by KDG