fab1105 | Bonjour,
Petit soucis avec une requête préparée, un oeil extérieur serait le bienvenue...
Ce code ne fonctionne pas :
Code :
- $req = $bdd->prepare("INSERT INTO commentaires (pseudo,contenu,article_id) VALUES (:pseudo,:comment,:article_id)" ) or die(print_r($bdd->errorInfo()));
- $req->execute(array(
- 'pseudo'=>$pseudo,
- 'comment'=>$comment,
- 'article_id'=>$p
- ));
- $req->closeCursor();
|
Je donne aussi le code de la page entière si besoin, la seule partie qui ne marche pas est celle citée ci-dessus.
Code :
- <?php
- if(empty($_GET))
- {
- header("Location: index.php" );
- }
- if(!empty($_GET))
- {
- require_once("id_connection.php" );
- extract($_GET);
- $p = strip_tags($p);
- }
- try
- {
- $bdd = new PDO('mysql:host='.$dbhost.';dbname='.$dbname,$dblogin,$dbpass);
- $bdd->exec('SET NAMES utf8');
- }
- catch (Exeption $e)
- {
- die('Erreur :'.$e->getMessage());
- }
- $req=$bdd->prepare("SELECT titre FROM articles WHERE id=:id" );
- $req->execute(array(
- "id"=>$p
- ));
- if($req->rowCount()==0)
- {
- header("Location: index.php" );
- }
- $data = $req->fetch();
- $titre = $data['titre'];
- $req->closeCursor();
- if(!empty($_POST))
- {
- extract($_POST);
- $valid = true;
- if(empty($pseudo))
- {
- $valid = false;
- $erreurpseudo = "Pseudo requis";
- }
- if(empty($comment))
- {
- $valid = false;
- $erreurcomment = "Laissez vos commentaires";
- }
- if($valid)
- {
- $pseudo=strip_tags($pseudo);
- $comment=strip_tags($comment);
- try
- {
- $bdd = new PDO('mysql:host='.$dbhost.';dbname='.$dbname,$dblogin,$dbpass);
- $bdd->exec('SET NAMES utf8');
- }
- catch (Exeption $e)
- {
- die('Erreur :'.$e->getMessage());
- }
- //Ne fonctionne pas
- $req = $bdd->prepare("INSERT INTO commentaires (pseudo,contenu,article_id) VALUES (:pseudo,:comment,:article_id)" ) or die(print_r($bdd->errorInfo()));
- $req->execute(array(
- 'pseudo'=>$pseudo,
- 'comment'=>$comment,
- 'article_id'=>$p
- ));
- $req->closeCursor();
- unset($pseudo);
- unset($comment);
- }
- }
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title><?php echo $titre;?></title>
- <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
- </head>
- <body>
- <div id="content">
- <?php
-
- $req=$bdd->prepare("SELECT * FROM articles WHERE id=:id" );
- $req->execute(array(
- "id"=>$p));
- $data = $req->fetch();
-
- echo "<h2>".$data['titre']."</h2>";
- echo "<div class=\"articles\">";
- echo "<p>".$data['contenu']."</p>";
- echo "<p class=\"date\">".date('j/n/Y G:i',strtotime($data['date']))."</p>";
-
- $req->closeCursor();
-
-
- ?>
- <div class="form">
- <form name="commenter" action="article.php?p=<?php echo $data['id']; ?>" method="post">
- <label for="pseudo">Pseudo :</label>
- <input type="text" name="pseudo" value="<?php if(isset($pseudo)) echo $pseudo; ?>" />
- <span class="error"><?php if(isset($erreurpseudo)) echo $erreurpseudo; ?></span>
- <label for="comment">Commentaires :</label>
- <textarea name="comment"><?php if(isset($comment)) echo $comment; ?></textarea>
- <span class="error"><?php if(isset($erreurcomment)) echo $erreurcomment; ?></span>
- <input type="submit" name="envoyer" value="Envoyer" />
- </form>
- </div>
- <?php
- $req=$bdd->prepare("SELECT * FROM commentaires WHERE article_id=:article_id" );
- $req->execute(array(
- "article_id"=>$p));
- while( $data = $req->fetch())
- {
- echo "<p>".$data['pseudo']."</p>";
- echo "<p>".$data['contenu']."</p>";
- }
- ?>
- </div>
- </div>
- </body>
- </html>
|
|