Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

laerciolsl

UPDATE com PDO

Recommended Posts

Estou tentando fazer uma atualização com PDO, mas o mesmo está dando o seguite errro:

exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\wamp\www\system\admin\pages\edit_usuarios.php:163 Stack trace: #0 C:\wamp\www\system\admin\pages\edit_usuarios.php(163): PDOStatement->execute() #1 C:\wamp\www\system\admin\home.php(28): include('C:\\wamp\\www\\sys...') #2 {main}

Já verifiquei o código mas até agora não conseguir ver o problema, alguém mode me ajudar?

Segue abaixo para o código.

<script type="text/javascript">
jQuery(function($){
$("#date").mask("99/99/9999",{placeholder:"dd/mm/yyyy"});
});
</script>
<div class="main">
<div class="main-inner">
<div class="container">
<div class="row">
<div class="span12">
<div id="target-1" class="widget">
<div class="widget-header">
<i class="icon-file"></i>
<h3>Editar Usuário</h3>
</div> <!-- /widget-header -->
<div class="widget-content">
<?php
//RECUPERA OS DADOS
if(!isset($_GET['id'])){ header("Location: home.php?acao=ver-usuarios"); exit;}
$id = $_GET['id'];
$select = "SELECT * FROM usuarios WHERE us_id=:id";
$contagem = 1;
try{
$result = $conexao->prepare($select);
$result->bindParam(':id', $id, PDO::PARAM_INT);
$result->execute();
$contar = $result->rowCount();
if($contar>0){
while ($exibUser = $result->FETCH(PDO::FETCH_OBJ)){
$idUser = $exibUser->us_id;
$nome = $exibUser->us_nome;
$sexo = $exibUser->us_sexo;
$empresa = $exibUser->us_empresa;
$cargo = $exibUser->us_cargo;
$telefone = $exibUser->us_telefone;
$imagem = $exibUser->us_foto;
$email = $exibUser->us_email;
$senha = $exibUser->us_senha;
$nivel = $exibUser->us_nivel;
}
}else{
echo '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Aviso!</strong> Não há dados cadastrados em nossa base de dados com o id informado.
</div>';exit;
}
}catch (PDOException $e){
echo $e;
}
$novoNome = $imagem;
// ATUALIZAR
if(isset($_POST['atualizar'])){
$us_nome = trim(strip_tags($_POST['us_nome']));
$us_sexo = trim(strip_tags($_POST['us_sexo']));
$us_empresa = trim(strip_tags($_POST['us_empresa']));
$us_cargo = trim(strip_tags($_POST['us_cargo']));
$us_telefone = trim(strip_tags($_POST['us_telefone']));
$us_email = trim(strip_tags($_POST['us_email']));
$us_senha = trim(strip_tags($_POST['us_senha']));
$us_nivel = trim(strip_tags($_POST['us_nivel']));
if(!empty($_FILES['img']['name'])){
//INFO IMAGEM
$file = $_FILES['img'];
$numFile = count(array_filter($file['name']));
//PASTA
$folder = '../upload/thumb/';
//REQUISITOS
$permite = array('image/jpeg', 'image/png', 'image/gif');
$maxSize = 1024 * 1024 * 5;
//MENSAGENS
$msg = array();
$errorMsg = array(
1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
3 => 'o upload do arquivo foi feito parcialmente',
4 => 'Não foi feito o upload do arquivo'
);
if($numFile <= 0){
/*echo '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Selecione uma imagem e tente novamente!
</div>';*/
}
else if($numFile >=2){
echo '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Você ultrapassou o limite de upload. Selecione apenas uma foto!
</div>';
}else{
for($i = 0; $i < $numFile; $i++){
$name = $file['name'][$i];
$type = $file['type'][$i];
$size = $file['size'][$i];
$error = $file['error'][$i];
$tmp = $file['tmp_name'][$i];
$extensao = @end(explode('.', $name));
$novoNome = rand().".$extensao";
if($error != 0)
$msg[] = "<b>$name :</b> ".$errorMsg[$error];
else if(!in_array($type, $permite))
$msg[] = "<b>$name :</b> Erro imagem não suportada!";
else if($size > $maxSize)
$msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB";
else{
if(move_uploaded_file($tmp, $folder.'/'.$novoNome)){
//$msg[] = "<b>$name :</b> Upload Realizado com Sucesso!";7
$arquivo = "../upload/thumb/" .$imagem;
unlink($arquivo);
}else
$msg[] = "<b>$name :</b> Desculpe! Ocorreu um erro...";
}
foreach($msg as $pop)
echo '';
//echo $pop.'<br>';
}
}
}// SE O INPUT FILE NÃO ESTIVER VAZIO
else{
$novoNome = $imagem;
}
$update = "UPDATE usuarios SET us_nome=:us_nome, us_sexo=:us_sexo, us_empresa=:us_empresa, us_cargo=:us_cargo, us_telefone=:us_telefone, us_foto=:imagem, us_email=:us_email, us_senha=:us_senha, us_nivel=:us_nivel WHERE us_id=:id";
try{
$result = $conexao->prepare($update);
$result->bindParam(':us_id', $id, PDO::PARAM_INT);
$result->bindParam(':us_nome', $us_nome, PDO::PARAM_STR);
$result->bindParam(':us_sexo', $us_sexo, PDO::PARAM_STR);
$result->bindParam(':us_empresa', $us_empresa, PDO::PARAM_STR);
$result->bindParam(':us_cargo', $us_cargo, PDO::PARAM_STR);
$result->bindParam(':us_telefone', $us_telefone, PDO::PARAM_STR);
$result->bindParam(':us_foto', $novoNome, PDO::PARAM_STR);
$result->bindParam(':us_email', $us_email, PDO::PARAM_STR);
$result->bindParam(':us_senha', $us_senha, PDO::PARAM_STR);
$result->bindParam(':us_nivel', $us_nivel, PDO::PARAM_STR);
$result->execute();
$contar = $result->rowCount();
if($contar>0){
echo '<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Sucesso!</strong> O post foi atualizado.
</div>';
}else{
echo '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>Erro!</strong> Erro ao atualizar post.
</div>';
}
}catch (PDOException $e){
echo $e;
}
}
?>
<div class="tab-pane" id="formcontrols">
<form id="edit-profile" class="form-horizontal" action="" method="post" enctype="multipart/form-data">
<fieldset>
<div class="control-group">
<label class="control-label" for="us_name">Nome</label>
<div class="controls">
<input type="text" class="span6 disabled" name="us_nome" id="us_nome" value="<?php echo $nome; ?>" required>
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="control-group">
<label class="control-label" for="us_empresa">Empresa</label>
<div class="controls">
<input type="text" class="span4" name="us_empresa" id="us_empresa" value="<?php echo $empresa; ?>" placeholder="">
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="control-group">
<label class="control-label" for="us_cargo">Cargo</label>
<div class="controls">
<input type="text" class="span4" name="us_cargo" id="us_cargo" value="<?php echo $cargo; ?>" placeholder="">
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="control-group">
<label class="control-label" for="us_telefone">Telefone</label>
<div class="controls">
<input type="text" class="span2" name="us_telefone" id="us_telefone" value="<?php echo $telefone; ?>" placeholder="" maxlength="15">
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="control-group">
<label class="control-label" for="foto">Foto</label>
<div class="controls">
<input type="file" class="span6 fileinput" name="img[]" id="us_foto" value="">
<img src="../upload/thumb/<?php echo $imagem; ?>" width="50"></img>
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="control-group">
<label class="control-label" for="sexo">Sexo</label>
<div class="controls">
<select class="span2" name="us_sexo" id="us_sexo" value="">
<option selected ><?php echo $sexo; ?></option>
<?php if($sexo!='Masculino'){echo "<option>Masculino</option>";}?>
<?php if($sexo!='Feminino'){echo "<option>Feminino</option>";}?>
</select>
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="control-group">
<label class="control-label" for="us_email">E-mail</label>
<div class="controls">
<input type="text" class="span4" name="us_email" id="us_email" value="<?php echo $email; ?>" placeholder="">
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="control-group">
<label class="control-label" for="us_senha">Senha</label>
<div class="controls">
<input type="password" class="span2" name="us_senha" id="us_senha" value="<?php echo $senha; ?>" placeholder="">
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="control-group">
<label class="control-label" for="us_nivel">Nivel</label>
<div class="controls">
<select class="span2" name="us_nivel" id="us_nivel" value="">
<option selected ><?php echo $nivel; ?></option>
<?php if($nivel!='Admin'){echo "<option>Admin</option>";}?>
<?php if($nivel!='User'){echo "<option>User</option>";}?>
</select>
</div> <!-- /controls -->
</div> <!-- /control-group -->
<div class="form-actions">
<input type="submit" name="atualizar" value="Atualizar" class="btn btn-primary">
<input class="btn" type="reset" name="cancelar" value="Cancelar">
</div> <!-- /form-actions -->
</form>
</div> <!-- /widget-content -->
</div> <!-- /widget -->
</div><!-- span 12 -->
</div><!-- row -->
</div>
<!-- /span6 -->
</div>
<!-- /row -->
</div>
<!-- /container -->
</div>
<!-- /main-inner -->
</div>
<!-- /main -->
<!--<script type="text/javascript" src="plugins/editor/nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script>-->
<!-- SCRIPT QUE MONTA O EDITOR DE TEXTO NA PAGINA DE POSTAGENS-->
<script type="text/javascript" src="plugins/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: 'textarea',
language: 'pt_BR',
height: 200,
theme: 'modern',
plugins: [
'advlist autolink lists link image charmap print preview hr anchor pagebreak',
'searchreplace wordcount visualblocks visualchars code fullscreen',
'insertdatetime media nonbreaking save table contextmenu directionality',
'emoticons template paste textcolor colorpicker textpattern imagetools'
],
toolbar1: 'insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
toolbar2: 'print preview media | forecolor backcolor emoticons',
image_advtab: true,
templates: [
{ title: 'Test template 1', content: 'Test 1' },
{ title: 'Test template 2', content: 'Test 2' }
],
content_css: [
'//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
'//www.tinymce.com/css/codepen.min.css'
]
});
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que código Monstrão!

Veja que os parâmetros de identificação são diferentes.

$result->bindParam(':us_id', $id, PDO::PARAM_INT); 
WHERE us_id= :id";

corrija os placeholders

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Williams Duarte.... kara, realmente é muito grande mesmo rsrsrs

Consegui resolver o B.O

mudei o WHERE us_id =: id para us_id =: us_id

No $result->bindParam(':us_id', $id, PDO::PARAM_INT); deixei assim mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.