1
I created a Function to register images as an album;
A table for capa
and a table for galeria
.
THE HTML:
//Imagem da Capa
<div class="form-group">
<label class="col-md-1 control-label" for="capa">Capa:</label>
<div class="col-md-4">
<input type="file" name="capa" class="form-control" required/>
</div>
</div>
// Imagens diversas
<div class="form-group">
<label class="col-md-1 control-label" for="imagem">Album </label>
<div class="col-md-4">
<input type="file[]" name="imagem" class="form-control" required/>
</div>
</div>
A Function:
function criarAlbum($tabela1, $tabela2, $dados) {
$con = conectar();
$caminho = 'uploads/';
$nomeArquivo = $_FILES["imagem"]["name"];
$nomeTemporario = $_FILES["imagem"]["tmp_name"];
$tamanhoArquivo = $_FILES["imagem"]["size"];
$nomeCapa = $_FILES["capa"]["name"];
$nomeTemporarioCapa = $_FILES["capa"]["tmp_name"];
$tamanhoArquivoCapa = $_FILES["capa"]["size"];
$arquivoArrayCapa = explode(".", $nomeCapa);
$extensaoCapa = end($arquivoArrayCapa);
$arquivoCapa = $caminho.md5(time().rand(3212, 15452)).'.'.$extensaoCapa;
$arquivoArray = explode(".", $nomeArquivo);
$extensao = end($arquivoArray);
$arquivo = $caminho.md5(time().rand(3212, 15452)).'.'.$extensao;
if (!is_dir($caminho)) {
mkdir($caminho);
chmod($caminho, 777);
}
// COMO VERIFICAR SE 2 ARQUIVOS FORAM MOVIDOS DE DIFERENTES INPUTS ?
if (move_uploaded_file($nomeTemporario, $arquivo)) {
// Prepara a inserção no banco de dados
$inserir = $con->prepare("INSERT INTO $tabela1(imagem) VALUES('$arquivo')");
$inserir->execute(); // Execute a inserção
$last = $inserir->lastInserId();
$inserirCapa = $con->prepare("INSERT INTO $tabela2(idGaleria, imagem) VALUES($last, '$arquivoCapa')");
$inseriCapa = $inserirCapa->execute(); // Execute a inserção
}
if ($inseriCapa && $inseri) { // 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>';
}
}
The mistake:
Fatal error: Call to Undefined method Pdostatement::lastInserId() in /var/www/guilledev/includes/conexao.php on line 293
I updated my reply from your comment.
– Allan Andrade
It turns out that you prepared the query, but did not link the parameters to the Prepared statment, and your syntax is misspelled.
– Edilson