protected function salvar($model) { try { $arrayControle = get_object_vars($model); unset($arrayControle['conexao']); unset($arrayControle['tabela']); foreach ($arrayControle as $indice => $valor) { if (trim($indice) != '' && !is_null($valor)) { $arrayModel[$indice] = $valor; } } $itens = count($arrayModel); $controle = 0; if (empty($model->id)) { $campos = '('; foreach ($arrayModel as $indice => $valor) { $controle++; if (trim($indice) != '' && $indice != 'id' && !is_null($valor)) { $campos .= $indice; if ($controle < $itens) { $campos .= ','; } } } $campos .= ')'; } $itens = count($arrayModel); $controle = 0; $query = !empty($model->id) ? 'UPDATE ' . $model::$tabela . ' SET ' : 'INSERT INTO ' . $model::$tabela . ' ' . $campos . ' VALUES ( '; foreach ($arrayModel as $indice => $valor) { $controle++; if (trim($indice) != '' && $indice != 'id' && !is_null($valor)) { $query .= !empty($model->id) ? $indice . ' = :' . $indice : ':' . $indice; if ($controle < $itens) { $query .= ','; } } } $query .= !empty($model->id) ? ' WHERE id = :id' : ' ) '; $result = $this->conexao->prepare($query); foreach ($arrayModel as $indice => $valor) { if (!is_null($valor)) { $result->bindParam(":" . $indice, $model->{$indice}, Funcao::pegarTipoPDO($model::$tabela, $indice)); } } if (!empty($model->id)) { $retorno = $result->execute(); if (get_class($this) != "Log") { Log::salvarLog($_GET['controller'], $_GET['view'], 'Foi atualizado o registro ' . $model->id); } } else { $result->execute(); $retorno = $this->conexao->lastInsertId(); if (get_class($this) != "Log") { Log::salvarLog($_GET['controller'], $_GET['view'], 'Foi inserido o registro ' . $this->conexao->lastInsertId()); } } return $retorno; } catch (PDOException $e) { echo $e->getMessage(); exit; //Conexao::alertaEnviaEmail("<code>" . $e->getMessage() . "</code>", $_SERVER['SCRIPT_NAME']); } }