Changeset 11991


Ignore:
Timestamp:
Aug 24, 2011, 9:50:54 PM (13 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.