Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola pessoal estou com uma duvida em relação ao PDO preciso validar um campo antes de salvar o mesmo no BD pra não duplicar Registros com SQL eu consigo fazer essa verificação mas com o PDO estou tendo dificuldades. Deem uma olhada em meu codigo pra ver onde estou errando..
<?
if(isset($_POST['executar']) && $_POST['executar'] == 'Salvar'){
$album = $_POST['album'];
$descricao = $_POST['descricao'];
$sql_verifica = 'SELECT * FROM album_fotos WHERE album = :album';$query_verifica = $conecta->prepare($verifica);
$query_verifica->bindValue(':album',$album,PDO::PARAM_STR);
$query_verifica->execute();
$verifica = $query_verifica->fetch(PDO::FETCH_NUM);
}catch(PDOexception $error_verifica){
}
if($verifica == 0){
echo "<div class='alert'>Erro, $album já cadastrado. Favor Cadastrar outro!</div>";
echo "<br />";
echo "<a href='?pg=galerias/cad_galerias'><img src='images/bt_voltar.png' alt='' border='0' /></a>";
exit(); $sql_cadastraAlbum = 'INSERT INTO album_fotos (album, descricao) ';
$sql_cadastraAlbum .= 'VALUES (:album, :descricao)';
try{
$query_cadastraAlbum = $conecta->prepare($sql_cadastraAlbum);
$query_cadastraAlbum->bindValue(':album',$album,PDO::PARAM_STR);
$query_cadastraAlbum->bindValue(':descricao',$descricao,PDO::PARAM_STR);
$query_cadastraAlbum->execute();
$diretorio = "../galerias/".$album;
if(!file_exists($diretorio)) {
mkdir($diretorio);
}
echo "<div class='ok'>Sucesso, criado $album\n</div>";
}catch(PDOexception $error_casdastraAlbum){
echo "<div class='alert'>Erro, $album já existe. Favor cadastrar outro.</div>";
exit();
}
}
}
?>Fora que todo o bloco de execução que está abaixo do catch(), deveria, na verdade, estar dentro do try{}
Troque
$sql_verifica = 'SELECT * FROM album_fotos WHERE album = :album';
POR :
$sql_verifica = 'SELECT * FROM album_fotos WHERE album = $album';
Esse trexo abaixo é o início do seu script..
tá vendo a variavel $verifica dentro do método prepare()..
então.. de onde ela vem?? pelo meu ver parece que ali vai esta variavel: $sql_verifica
<?
try{
$query_verifica = $conecta->prepare($verifica);