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
Réponse acceptée

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

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

de rien, passes ton sujet en résolu