Changeset 11991


Ignore:
Timestamp:
08/24/11 21:50:54 (8 years ago)
Author:
plg
Message:

feature 2359: simpler function single_update and single_insert

Location:
trunk/include/dblayer
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/dblayer/functions_mysql.inc.php

    r11485 r11991  
    351351 * 
    352352 * @param string table_name 
    353  * @param array dbfields 
    354  * @param array data 
     353 * @param array set_fields 
     354 * @param array where_fields 
    355355 * @param int flags - if MASS_UPDATES_SKIP_EMPTY - empty values do not overwrite existing ones 
    356356 * @return void 
    357357 */ 
    358 function single_update($tablename, $dbfields, $data, $flags=0) 
    359 { 
    360   if (count($data) == 0) 
     358function single_update($tablename, $set_fields, $where_fields, $flags=0) 
     359{ 
     360  if (count($set_fields) == 0) 
     361  { 
    361362    return; 
     363  } 
    362364 
    363365  $query = ' 
     
    365367  SET '; 
    366368  $is_first = true; 
    367   foreach ($dbfields['update'] as $key) 
     369  foreach ($set_fields as $key => $value) 
    368370  { 
    369371    $separator = $is_first ? '' : ",\n    "; 
    370372 
    371     if (isset($data[$key]) and $data[$key] != '') 
    372     { 
    373       $query.= $separator.$key.' = \''.$data[$key].'\''; 
     373    if (isset($value) and $value != '') 
     374    { 
     375      $query.= $separator.$key.' = \''.$value.'\''; 
    374376    } 
    375377    else 
     
    386388  WHERE '; 
    387389    $is_first = true; 
    388     foreach ($dbfields['primary'] as $key) 
     390    foreach ($where_fields as $key => $value) 
    389391    { 
    390392      if (!$is_first) 
     
    392394        $query.= ' AND '; 
    393395      } 
    394       if ( isset($data[$key]) ) 
    395       { 
    396         $query.= $key.' = \''.$data[$key].'\''; 
     396      if ( isset($value) ) 
     397      { 
     398        $query.= $key.' = \''.$value.'\''; 
    397399      } 
    398400      else 
     
    472474 
    473475/** 
    474  * inserts on line in a table 
     476 * inserts one line in a table 
    475477 * 
    476478 * @param string table_name 
     
    479481 * @return void 
    480482 */ 
    481 function single_insert($table_name, $dbfields, $insert) 
    482 { 
    483   if (count($insert) != 0) 
     483function single_insert($table_name, $data) 
     484{ 
     485  if (count($data) != 0) 
    484486  { 
    485487    $query = ' 
    486488INSERT INTO '.$table_name.' 
    487   ('.implode(',', $dbfields).') 
     489  ('.implode(',', array_keys($data)).') 
    488490  VALUES'; 
    489491 
    490492    $query .= '('; 
    491     foreach ($dbfields as $field_id => $dbfield) 
    492     { 
    493       if ($field_id > 0) 
     493    $is_first = true; 
     494    foreach ($data as $key => $value) 
     495    { 
     496      if (!$is_first) 
    494497      { 
    495498        $query .= ','; 
    496499      } 
    497       if (!isset($insert[$dbfield]) or $insert[$dbfield] === '') 
     500      else 
     501      { 
     502        $is_first = false; 
     503      } 
     504       
     505      if ($value === '') 
    498506      { 
    499507        $query .= 'NULL'; 
     
    501509      else 
    502510      { 
    503         $query .= "'".$insert[$dbfield]."'"; 
     511        $query .= "'".$value."'"; 
    504512      } 
    505513    } 
  • trunk/include/dblayer/functions_pdo-sqlite.inc.php

    r11485 r11991  
    316316 
    317317/** 
    318  * updates on line in a table 
     318 * updates one line in a table 
    319319 * 
    320320 * @param string table_name 
    321  * @param array dbfields 
    322  * @param array data 
     321 * @param array set_fields 
     322 * @param array where_fields 
    323323 * @param int flags - if MASS_UPDATES_SKIP_EMPTY - empty values do not overwrite existing ones 
    324324 * @return void 
    325325 */ 
    326 function single_update($tablename, $dbfields, $data, $flags=0) 
    327 { 
    328   if (count($data) == 0) 
     326function single_update($tablename, $set_fields, $where_fields, $flags=0) 
     327{ 
     328  if (count($set_fields) == 0) 
     329  { 
    329330    return; 
     331  } 
    330332 
    331333  $query = ' 
     
    333335  SET '; 
    334336  $is_first = true; 
    335   foreach ($dbfields['update'] as $key) 
     337  foreach ($set_fields as $key => $value) 
    336338  { 
    337339    $separator = $is_first ? '' : ",\n    "; 
    338      
    339     if (isset($data[$key]) and $data[$key] != '') 
    340     { 
    341       $query.= $separator.$key.' = \''.$data[$key].'\''; 
     340 
     341    if (isset($value) and $value != '') 
     342    { 
     343      $query.= $separator.$key.' = \''.$value.'\''; 
    342344    } 
    343345    else 
     
    354356  WHERE '; 
    355357    $is_first = true; 
    356     foreach ($dbfields['primary'] as $key) 
     358    foreach ($where_fields as $key => $value) 
    357359    { 
    358360      if (!$is_first) 
     
    360362        $query.= ' AND '; 
    361363      } 
    362       if ( isset($data[$key]) ) 
    363       { 
    364         $query.= $key.' = \''.$data[$key].'\''; 
     364      if ( isset($value) ) 
     365      { 
     366        $query.= $key.' = \''.$value.'\''; 
    365367      } 
    366368      else 
     
    373375  } 
    374376} 
    375  
    376377 
    377378/** 
     
    446447 * @return void 
    447448 */ 
    448 function single_insert($table_name, $dbfields, $insert) 
    449 { 
    450   if (count($insert) != 0) 
     449function single_insert($table_name, $data) 
     450{ 
     451  if (count($data) != 0) 
    451452  { 
    452453    $query = ' 
    453454INSERT INTO '.$table_name.' 
    454   ('.implode(',', $dbfields).') 
     455  ('.implode(',', array_keys($data)).') 
    455456  VALUES'; 
    456457 
    457458    $query .= '('; 
    458     foreach ($dbfields as $field_id => $dbfield) 
    459     { 
    460       if ($field_id > 0) 
     459    $is_first = true; 
     460    foreach ($data as $key => $value) 
     461    { 
     462      if (!$is_first) 
    461463      { 
    462464        $query .= ','; 
    463465      } 
    464       if (!isset($insert[$dbfield]) or $insert[$dbfield] === '') 
     466      else 
     467      { 
     468        $is_first = false; 
     469      } 
     470       
     471      if ($value === '') 
    465472      { 
    466473        $query .= 'NULL'; 
     
    468475      else 
    469476      { 
    470         $query .= "'".$insert[$dbfield]."'"; 
     477        $query .= "'".$value."'"; 
    471478      } 
    472479    } 
  • trunk/include/dblayer/functions_pgsql.inc.php

    r11485 r11991  
    427427 
    428428/** 
    429  * updates on line in a table 
     429 * updates one line in a table 
    430430 * 
    431431 * @param string table_name 
    432  * @param array dbfields 
    433  * @param array data 
     432 * @param array set_fields 
     433 * @param array where_fields 
    434434 * @param int flags - if MASS_UPDATES_SKIP_EMPTY - empty values do not overwrite existing ones 
    435435 * @return void 
    436436 */ 
    437 function single_update($tablename, $dbfields, $data, $flags=0) 
    438 { 
    439   if (count($data) == 0) 
     437function single_update($tablename, $set_fields, $where_fields, $flags=0) 
     438{ 
     439  if (count($set_fields) == 0) 
     440  { 
    440441    return; 
     442  } 
    441443 
    442444  $query = ' 
     
    444446  SET '; 
    445447  $is_first = true; 
    446   foreach ($dbfields['update'] as $key) 
     448  foreach ($set_fields as $key => $value) 
    447449  { 
    448450    $separator = $is_first ? '' : ",\n    "; 
    449451 
    450     if (isset($data[$key]) and $data[$key] != '') 
    451     { 
    452       $query.= $separator.$key.' = \''.$data[$key].'\''; 
     452    if (isset($value) and $value != '') 
     453    { 
     454      $query.= $separator.$key.' = \''.$value.'\''; 
    453455    } 
    454456    else 
     
    465467  WHERE '; 
    466468    $is_first = true; 
    467     foreach ($dbfields['primary'] as $key) 
     469    foreach ($where_fields as $key => $value) 
    468470    { 
    469471      if (!$is_first) 
     
    471473        $query.= ' AND '; 
    472474      } 
    473       if ( isset($data[$key]) ) 
    474       { 
    475         $query.= $key.' = \''.$data[$key].'\''; 
     475      if ( isset($value) ) 
     476      { 
     477        $query.= $key.' = \''.$value.'\''; 
    476478      } 
    477479      else 
     
    482484    } 
    483485    pwg_query($query); 
    484   }  
     486  } 
    485487} 
    486488 
     
    549551 
    550552/** 
    551  * inserts on line in a table 
     553 * inserts one line in a table 
    552554 * 
    553555 * @param string table_name 
     
    556558 * @return void 
    557559 */ 
    558 function single_insert($table_name, $dbfields, $insert) 
    559 { 
    560   if (count($insert) != 0) 
     560function single_insert($table_name, $data) 
     561{ 
     562  if (count($data) != 0) 
    561563  { 
    562564    $query = ' 
    563565INSERT INTO '.$table_name.' 
    564   ('.implode(',', $dbfields).') 
     566  ('.implode(',', array_keys($data)).') 
    565567  VALUES'; 
    566568 
    567569    $query .= '('; 
    568     foreach ($dbfields as $field_id => $dbfield) 
    569     { 
    570       if ($field_id > 0) 
     570    $is_first = true; 
     571    foreach ($data as $key => $value) 
     572    { 
     573      if (!$is_first) 
    571574      { 
    572575        $query .= ','; 
    573576      } 
    574       if (!isset($insert[$dbfield]) or $insert[$dbfield] === '') 
     577      else 
     578      { 
     579        $is_first = false; 
     580      } 
     581       
     582      if ($value === '') 
    575583      { 
    576584        $query .= 'NULL'; 
     
    578586      else 
    579587      { 
    580         $query .= "'".$insert[$dbfield]."'"; 
     588        $query .= "'".$value."'"; 
    581589      } 
    582590    } 
  • trunk/include/dblayer/functions_sqlite.inc.php

    r11925 r11991  
    328328 
    329329/** 
    330  * updates on line in a table 
     330 * updates one line in a table 
    331331 * 
    332332 * @param string table_name 
    333  * @param array dbfields 
    334  * @param array data 
     333 * @param array set_fields 
     334 * @param array where_fields 
    335335 * @param int flags - if MASS_UPDATES_SKIP_EMPTY - empty values do not overwrite existing ones 
    336336 * @return void 
    337337 */ 
    338 function single_update($tablename, $dbfields, $data, $flags=0) 
    339 { 
    340   if (count($data) == 0) 
     338function single_update($tablename, $set_fields, $where_fields, $flags=0) 
     339{ 
     340  if (count($set_fields) == 0) 
     341  { 
    341342    return; 
     343  } 
    342344 
    343345  $query = ' 
     
    345347  SET '; 
    346348  $is_first = true; 
    347   foreach ($dbfields['update'] as $key) 
     349  foreach ($set_fields as $key => $value) 
    348350  { 
    349351    $separator = $is_first ? '' : ",\n    "; 
    350      
    351     if (isset($data[$key]) and $data[$key] != '') 
    352     { 
    353       $query.= $separator.$key.' = \''.$data[$key].'\''; 
     352 
     353    if (isset($value) and $value != '') 
     354    { 
     355      $query.= $separator.$key.' = \''.$value.'\''; 
    354356    } 
    355357    else 
     
    366368  WHERE '; 
    367369    $is_first = true; 
    368     foreach ($dbfields['primary'] as $key) 
     370    foreach ($where_fields as $key => $value) 
    369371    { 
    370372      if (!$is_first) 
     
    372374        $query.= ' AND '; 
    373375      } 
    374       if ( isset($data[$key]) ) 
    375       { 
    376         $query.= $key.' = \''.$data[$key].'\''; 
     376      if ( isset($value) ) 
     377      { 
     378        $query.= $key.' = \''.$value.'\''; 
    377379      } 
    378380      else 
     
    385387  } 
    386388} 
    387  
    388389 
    389390/** 
     
    458459 * @return void 
    459460 */ 
    460 function single_insert($table_name, $dbfields, $insert) 
    461 { 
    462   if (count($insert) != 0) 
     461function single_insert($table_name, $data) 
     462{ 
     463  if (count($data) != 0) 
    463464  { 
    464465    $query = ' 
    465466INSERT INTO '.$table_name.' 
    466   ('.implode(',', $dbfields).') 
     467  ('.implode(',', array_keys($data)).') 
    467468  VALUES'; 
    468469 
    469470    $query .= '('; 
    470     foreach ($dbfields as $field_id => $dbfield) 
    471     { 
    472       if ($field_id > 0) 
     471    $is_first = true; 
     472    foreach ($data as $key => $value) 
     473    { 
     474      if (!$is_first) 
    473475      { 
    474476        $query .= ','; 
    475477      } 
    476       if (!isset($insert[$dbfield]) or $insert[$dbfield] === '') 
     478      else 
     479      { 
     480        $is_first = false; 
     481      } 
     482       
     483      if ($value === '') 
    477484      { 
    478485        $query .= 'NULL'; 
     
    480487      else 
    481488      { 
    482         $query .= "'".$insert[$dbfield]."'"; 
     489        $query .= "'".$value."'"; 
    483490      } 
    484491    } 
Note: See TracChangeset for help on using the changeset viewer.