1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| function saveRecord($table,$newRecArray)
{
$_hDB = $this->dbConnect();
$lastArrayElmnt = count($newRecArray)-1; $rs=1;
if ($newRecArray[0] == 0) {
$rs = pg_query($_hDB,"SELECT nextval('$table"."_id_seq') as key");
$row = pg_fetch_array($rs, 0); $last_id = $row['key'];
$query = "INSERT INTO $table VALUES ('$last_id', ";
for($n=1;$n<$lastArrayElmnt;$n++) {
$query .= "'".unicodereplace($newRecArray[$n])."', ";
}
$query .= "'".$newRecArray[$lastArrayElmnt]."')";
$rs = pg_query($_hDB,$query);
} else {
$fieldNames = $this->getFieldsNames($table);
$savedRecArray = $this->getRecordById($table,$newRecArray[0]);
$changedNamesArray = array(); $changedValuesArray = array();
for($n=1;$n<count($newRecArray);$n++) {
if ($newRecArray[$n] != $savedRecArray[$n]) {
$changedNamesArray[] = $fieldNames[$n];
$changedValuesArray[] = $newRecArray[$n];
}
}
if(count($changedNamesArray)>0) {
$changedArray = array();
$query = "UPDATE $table SET ";
for($n=0;$n<count($changedNamesArray);$n++) {
$changedArray[] = " ".$changedNamesArray[$n]." = '".unicodereplace($changedValuesArray[$n])."'";
}
$query .= implode(",",$changedArray);
$query .= " WHERE id = '".$newRecArray[0]."';";
$rs = pg_query($_hDB,$query);
}
$last_id=$newRecArray[0];
}
//echo $query;
pg_free_result($rs);
return $query;
} |
Partager