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
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 ?
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']
));
}
?>