Bonjour a tous, j'ai un problème que je n'arrive pas à résoudre j'aimerais donc avoir votre aide. Tout simplement mon Update dans la bdd ne marche pas je recois une serie d'erreurs.

Mon code

<?php 
try {
    $bdd = new PDO('mysql:host=localhost;dbname=learn', 'root', '');
    $bdd->exec("SET NAMES 'UTF8'");
} catch (Exception $e) {
    die('Erreur' . $e->getMessage());
}
$req = $bdd->prepare('SELECT * FROM blagues WHERE id = ?');
$req->execute(array($_GET'joke']));
$received = $req->fetch();
 $req->closeCursor();
if(!empty($_POST)){
    $req = $bdd->prepare('UPDATE blagues SET titre :titre, contenu = :contenu WHERE id = ?');
    $req->execute(array(
    'titre' => $titre,
    'contenu' => $contenu
    ));
}
?>
        <form action="edit.php" method="post">
            <input class="input-xlarge" type="text" name="titre" value="<?php echo htmlspecialchars($received'titre']);?>"><br>
        <textarea rows="15" class="input-xxlarge" name="contenu"><?php echo htmlspecialchars($received'contenu']); ?></textarea><br>
        <input type="submit" name="Submit" value="Submit" class="btn btn-danger">
        </form>

Mes erreurs en image : Lien

5 réponses


Salut,

dans la partie SET de te requête tu as oublié un = entre titre et :titre. Après ça il y a peut-être au chose, mais vite comme ça c'est ce que j'ai vu.

@++

Justin : )

Merci Justin pour m'avoir averti de mon erreur d'inattention, j'ai résolu par moi même quelque problèmes en faisant un extract($_POST) mais il me reste encore un problème qui empeche l'update dans la bdd indiquant que : PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters

Le voici en image : Lien
Que signifie ce message d'erreur ? Comment le résoudre ?

Personne ne trouve de réponses a ma question ?

Ta requête SQL ne trouve pas une variable $id, c'est pour ça il faut indiquer sa valeur avant la préparation de tes requêtes SQL.

Je te conseille ceci j’espère que sa pourras t'aider

<?php
$req = $cnx->prepare('SELECT * FROM me_utilisateur WHERE identifiant = :identifiant');
$req->execute(array(':identifiant' => $_SESSION'identifiant']));
$received = $req->fetch();
 $req->closeCursor();
if(!empty($_POST)){
    $req = $cnx->prepare('UPDATE me_utilisateur SET email = :email, site = :site WHERE identifiant = :identifiant');
    $req->execute(array(
    'email' => $_POST'email'],
    'site' => $_POST'site'],
    ':identifiant' => $_SESSION'identifiant']
    ));
}
?>