|
|
@@ -357,6 +357,10 @@ class Core_Database_Mysql extends Core_Database {
|
|
|
return "#".mysql_errno($this->_conn).": ".mysql_error($this->_conn);
|
|
|
}
|
|
|
|
|
|
+ function errno() {
|
|
|
+ return mysql_errno($this->_conn);
|
|
|
+ }
|
|
|
+
|
|
|
function get_by_id( $table, $id ) {
|
|
|
$null = null;
|
|
|
$sql = "select p.*
|
|
|
@@ -513,20 +517,30 @@ class Core_Database_Mysql extends Core_Database {
|
|
|
$sql = "update `{$table}` set ".implode(",", $sql_arr)." where `ID`='{$id}' limit 1; ";
|
|
|
$this->query($sql);
|
|
|
|
|
|
+ $returnError = false;
|
|
|
+ $skipDbErrorAddHist = false;
|
|
|
if ($this->has_errors()) {
|
|
|
- return -1;
|
|
|
+ $returnError = true;
|
|
|
+ if (1146 == $this->errno()) {
|
|
|
+ $skipDbErrorAddHist = true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- $ret = $this->affected_rows();
|
|
|
- if ($ret) {
|
|
|
+ $returnCode = 0;
|
|
|
+ $affected = $this->affected_rows();
|
|
|
+ if ($affected || $skipDbErrorAddHist) {
|
|
|
+ $returnCode = 1;
|
|
|
$sql_obj->ID_USERS2 = $sql_obj->$primary;
|
|
|
unset($sql_obj->$primary);
|
|
|
$new_id = $this->ADD_NEW_OBJ("{$table}_HIST", $sql_obj);
|
|
|
if ($new_id) {
|
|
|
- $ret += 1;
|
|
|
+ $returnCode += 1;
|
|
|
}
|
|
|
}
|
|
|
- return $ret;
|
|
|
+ if ($returnError) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ return $returnCode;
|
|
|
}
|
|
|
|
|
|
function ADD_NEW_OBJ( $table, $sql_obj,$dieonerror=null ) {
|