I'm trying to create a function that takes 1 value from a input do tipo texto
and 1 file.
I was able to move the file to the folder however I am not able to develop SQL to insert the file name into the database.
The ID and name is usually entered only if the file name is not entered, I even know it's in the part:
$inserir = $con->prepare("INSERT INTO $tabela($campos) VALUES($valores)");
$inseri = $inserir->execute(); // Execute a inserção
But I'm not able to develop something to include this file path as well.
function cadastroComFoto($tabela, $dados){
$con = conectar();
$nomeArquivo = $_FILES["fotos"]["name"];
$nomeTemporario = $_FILES["fotos"]["tmp_name"];
$tamanhoArquivo = $_FILES["fotos"]["size"];
$caminho = 'uploads/';
$arquivoArray = explode(".", $nomeArquivo);
$extensao = end($arquivoArray);
$arquivo = $caminho.md5(time().rand(3212, 15452)).'.'.$extensao;
if (!is_dir($caminho)) {
mkdir($caminho);
chmod($caminho, 777);
}
if (move_uploaded_file($nomeTemporario, $arquivo)) {
foreach($_POST as $key => $val){
//Percorre os indices passados por POST armazanando em $key e os valores em $val
$campo[] = $key; // Cria um array $campo com os indices
$valor[] = "'$val'"; // Cria um array $valor com os valores
$campos = implode(",", $campo); // Junta os indices de $campo com virgula
$valores = implode(',', $valor); // Junta os valores de $valor com virgula
}
// Prepara a inserção no banco de dados
$inserir = $con->prepare("INSERT INTO $tabela($campos) VALUES($valores)");
$inseri = $inserir->execute(); // Execute a inserção
if ($inserir) { // Caso a inserção ocorra bem exibira uma mensagem de sucesso.
echo '<div class="alert alert-success" role="alert">Salvo com sucesso!</div>';
}
else { // Caso a inserção ocorra mal exibira uma mensagem de erro.
echo '<div class="alert alert-danger" role="alert">Erro ao inserir no banco de dados!</div>';
}
unset($campos); //Apaga os valores passados por POST --
unset($valores);// -- para que o usuario não precise sair da pagina e voltar de novo para efetuar outra inserção.
}
print_r($inserir->errorInfo());
}