Ignore:
Timestamp:
Aug 24, 2011, 9:50:54 PM (13 years ago)
Author:
plg
Message:

feature 2359: simpler function single_update and single_insert

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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    }
Note: See TracChangeset for help on using the changeset viewer.