General error: 25 column index out of range

Par Stallmania, il y a 6 ans


Bonjour;
qui a déjà rencontrer cette erreur en faison une requete de type UPDATE sur sqlite ?

SQLSTATE[HY000]: General error: 25 column index out of range

voici mon script:

<?php require DIR.'/../../elements/header.php';?>
<?php require DIR.'/../../vendor/autoload.php';?>

<?php
error=null; $success = null; $pdo = new PDO('sqlite:../data/data.db',null,null,[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ]); //id = pdo->quote(_GET['id']);
try{
if (isset(_POST['name'],_POST['contents'])) {
statments=pdo->prepare('UPDATE posts SET name = :name , contents = :contents WHERE id=:id');
$statments->execute([
'name' => $_POST['name'],
'contents' => $_POST['contents'],
'id' => $_GET['id']
]);
$success ='votre article a bien été modifier';

}
$statments =$pdo->prepare('SELECT * FROM posts');
$statments->execute(['id' => $_GET['id']]);

$posts = $statments->fetch();

}catch (PDOException e){ $error = $e->getMessage(); } ?> <div class="contaner"> <?php if (success):?>
<div class="alert alert-success"><?=success?></div> <?php endif?> <?php if (error):?>
<div class="alert alert-danger"><?=error?></div> <?php endif?> </div> <form action="" method="POST"> <div class="form-group"> <input class="form-control" type="text" name="name" value="<?php if (isset(_POST['name'])){ echo htmlentities (post->name);}else {echo '';}?>" placeholder="entrer le nom" aria-describedby="helpId"> </div> <div class="form-group"> <textarea class="form-control" type="text" name="contents" rows="7"><?php if (isset(_POST['contents'])){ echo htmlentities ($post->contents);}else {echo '';}?></textarea>
</div>
<button type="submit" class="btn btn-primary">valider</button>
</form>
</div>

3 réponses

Carouge10, il y a 6 ans

de rien, passes ton sujet en résolu

Carouge10, il y a 6 ans

Bonsoir, tu bindes :id mais il n'est spécifier dans ton SELECT

Stallmania, il y a 6 ans

merci beacoup Carouge10, effectivement j'ai ajouté WHERE id = :id'); je suis bête