Então, não estou conseguindo alterar dados no meu banco via php, da o seguinte erro Desculpe! Erro no servidor.SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens.
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql and bind parameters
$stmt = $conn->prepare("UPDATE cadastra_usuarios SET nome=:nome, senha=:senha, email=:email WHERE idusuarios=:id
VALUES (:nome, :senha, :email)");
$stmt->bindParam(':nome', $_POST['nome']);
$stmt->bindParam(':senha', $_POST['senha']);
$stmt->bindParam(':email', $_POST['email']);
$stmt->execute();
echo "Alterado com sucesso!";
}
catch(PDOException $e)
{
echo "Desculpe! Erro no servidor." . $e->getMessage();
}
$conn = null;
?>
Pergunta
Everton Tenik
Então, não estou conseguindo alterar dados no meu banco via php, da o seguinte erro Desculpe! Erro no servidor.SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens.
Form de Envio das alterações:
<?php
session_start();
include 'verifica.php';
$servername = "localhost";
$username = "admin";
$password = "admin";
$dbname = "darkfall";
$usuario['capa'] = 'https://68.media.tumblr.com/838c894524088bb7da56a4bf4d0b02b1/tumblr_inline_ni4oi4VINS1sbavn0.png';
?>
<?php
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// forma 1
$stmt = $conn->prepare("SELECT * FROM cadastra_usuarios WHERE idusuarios=:id;");
$stmt->bindParam(':id', $_GET['idusuarios']);
$stmt->execute();
$result = $stmt->fetch();
}
catch(PDOException $e)
{
echo "Opss... Erro no servidor: " . $e->getMessage();
}
?>
<form action="edit.php" method="POST" id="div">
<p>Nome:</p><input type="text" name="nome" value="<?php echo $result['nome']; ?>">
<p>Senha:</p><input type="password" name="senha" value="<?php echo $result['senha']; ?>">
<p>Email:</p><input type="text" name="email" value="<?php echo $result['email']; ?>">
<input type="submit" value="Alterar">
</form>
Script de Alterar :
<?php
//echo 'Olá '. $_POST['nome'].'<br///
// echo 'Seu username é '. $_POST['user'].'<br>';//
//echo 'Seu email é '. $_POST['email'].'<br>';//
$servername = "localhost";
$username = "admin";
$password = "admin";
$dbname = "darkfall";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql and bind parameters
$stmt = $conn->prepare("UPDATE cadastra_usuarios SET nome=:nome, senha=:senha, email=:email WHERE idusuarios=:id
VALUES (:nome, :senha, :email)");
$stmt->bindParam(':nome', $_POST['nome']);
$stmt->bindParam(':senha', $_POST['senha']);
$stmt->bindParam(':email', $_POST['email']);
$stmt->execute();
echo "Alterado com sucesso!";
}
catch(PDOException $e)
{
echo "Desculpe! Erro no servidor." . $e->getMessage();
}
$conn = null;
?>
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.