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_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.