Skip to main content

Simple PHP function to update data in Mysql Database


The below simple php function is used to update data into MySql database with out manually filling the update mysql query with input filed names.

Function:
function update_Defined($table, $data, $condition){
    // update('table', array_map('trim',$_POST),'id='.$_POST['p_id']);
    global $db;
    $query = "UPDATE `" . $table . "` SET ";
    $fis = array(); $vas = array();
  
    foreach ($data as $field => $val){
        $fis[] = "`$field`";
        $vas[] = "'" . mysqli_real_escape_string($db,$val) . "'";
    }
  
    foreach ($fis as $key => $field_name) {
        $fields[$key] = $field_name;
        if (isset($vas[$key])) {
            $fields[$key] .= '=' . $vas[$key];
        }
    }
  
    $query .= implode(',', $fields);
    $query .= " WHERE " . $condition;
    //echo $query;exit;
    Query($query);
}

Form:
<form action="" method="post" name="designation" id="designation">
  <span class="label">Department Name <span class="red">*</span></span>
  <select name="desg_dept_id" id="desg_dept_id" placeholder="Department Name" style="width: 310px" required>
    <option value="">Select Department Name</option>
    <option value="1">Dept 1</option>
    <option value="2">Dept 2</option>
    <option value="3">Dept 3</option>
  </select>
  <br>
  <span class="label">Designation Name <span class="red">*</span></span>
  <input name="desg_name" id="desg_name" type="text" value="" required>
  <br>
  <span class="label">Designation Abbreviation <span class="red">*</span></span>
  <input name="desg_abbreviation" id="desg_abbreviation" type="text" value="" required>
  <br>
  <span class="label">Description</span>
  <textarea name="desg_description" id="desg_description" value="" ></textarea><br>
  <input name="" type="submit" value="Submit" class="button-green">
  <input name="reset" type="reset" value="Cancel" class="button-orange ml10" onClick="history.back()">
</form>


Function Calling for update data into MySql.


update_Defined('designations', array_map('trim',$_POST),"desg_id='".$getid."'");

Note: 
The $_POST is a array. The names of posted form input fields need to match with database "designations" table column names.

Comments