Exemplo n.º 1
0
 public function guardar($validar = true)
 {
     $res = true;
     //Validar si se debe hacer...
     if ($validar) {
         $res = $this->validar();
     }
     //si ha validado bien, o no se ha ejecutado, almacenar...
     if ($res) {
         $sql = $this->nuevo ? $this->sqlInsertar() : $this->sqlActualizar();
         //log::mensajeLin( __METHOD__.' '.__LINE__.' SQL= '.print_r( $sql, true));
         if ($sql !== false) {
             $res = basedatos::ejecutarSQL($sql);
             //Si se ha ejecutado la SQL obtenida...
             //log::mensajeLin( __METHOD__.' '.__LINE__.' res= '.print_r( $res, true));
             if ($res === true) {
                 //comparar con "true" porque puede ser "false" u "objeto"...
                 //Si el registro es nuevo, se intenta coger el ID autonumerico (si existe)
                 if ($this->nuevo) {
                     if (!empty($this->campoAutonumerico) && basedatos::ultimo_id() != 0) {
                         $campo = $this->campoAutonumerico;
                         $this->{$campo} = basedatos::ultimo_id();
                     }
                     //if
                     $this->nuevo = false;
                     $this->llenarClave();
                     //Actualizar los datos de la clave primaria.
                 }
                 //if
             } else {
                 //Si resulta "false" u "objeto", no ha ido bien, pues una SQL de
                 //insercion o actualizacion deben devolver "true".
                 $res = false;
             }
             //if
         }
         //if
     }
     //if
     return $res;
 }