Pdo qui bug

Bonjour,

J’ai ce script qui marche bien sauf que rien n’est modifié dans la BDD.


   function editReiki()
   {
      $dbh = mysql::getInstance();
      $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
      $sql = "SELECT *
      FROM `view`
      WHERE title = 'reiki'";
      $requete = $dbh->prepare($sql);
      $requete->execute();
      
      $row = $requete->fetch(PDO::FETCH_ASSOC);
      $text = $row['text'];
      $textEncoder = addslashes($text);
      /* htmlentities(string,quotestyle,character-set)*/
      
      $dbh2 = mysql::getInstance();
      $dbh2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
      $sql2 = "UPDATE `view`
               SET text = ?
               WHERE title = 'reiki'";
      $requete2 = $dbh2->prepare($sql2);
      $requete2->execute(array($textEncoder)); 
      echo 'Enregistrement effestué.';
      ?><!-- <SCRIPT LANGUAGE="JavaScript">
		document.location.href="?p=reiki"
		</SCRIPT> -->
		<?php
   }

Merci de m’aider

Tu as testé ta requête dans mySQL ? Voir si ton where n’est pas la cause de tes erreurs ?

Non l’erreur doit venur des apostrophe regarde ce que me retourne $sql2.



UPDATE 'view' SET text = '<br><br> <center><h1><b>Le Reiki Usui ...</b></h1></center> <br><br> <p>Le Reiki est une pratique énergétique japonaise permettant d'<strong>augmenter l'énergie vitale et d'installer un sentiment de paix intérieure.</strong><br /> La praticienne pr ocède par la méditation et l'imposition des mains.<br /> On peut recevoir les séances ou apprendre à à pratiquer soi-même, pour soi et pour autrui.</p> <center><img alt="" src="img/reiki.jpg" width="250" height="188"></center> <p>Le Reiki peut <strong>soulager les douleurs et les tensions corporelles,émotionnelles et mentales.</strong></p> <p>Il apporte une relaxation profonde ou plus légère, selon les besoins de la personne.</p> <p>Après une séance,<strong>on se sent reposé,allégé,détendu, plus serein et ré-énergisé.</strong><br /> Les noeuds se dénouent, la respiration se libère, les énergies se ré-équilibrent<br /> Le corps et l'esprit s'harmonisent et sont aidés dans leur processus d<strong>'auto-guérison. <br> </strong><br> <div style="border:1px solid #000"> <center> <strong>Durée de la séance: </strong>1h30<br> <strong>Tarif:</strong> 53e<br>Des tarifs réduits existent compte tenu des moyens de chacun.<br> </center> </div> <br> <br> <br>' WHERE title = 'reiki'
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'lt' in 'field list' in /homez.584/espacedey/www/cp/includes/class/EditView.php on line 25
Enregistrement effestué.


Hello,

Tu peux nous donner la structure de ta table sur laquelle est executée la requete ?
[/quote]
Quand tu remplace le contenu à updaté par une chaine simple, sans caractères spéciaux, tu as toujours l’erreur ?
Edité le 14/11/2012 à 17:52

CREATE TABLE `view` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(30) NOT NULL,
  `text` longtext NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=latin1;

Edité le 14/11/2012 à 17:52

De l’aide SVP !

Essaye de mettre text et pas simplement text. Tu utilises un mot clef, et c’est pas forcément pour plaire à mySQL.

Et si tu fais des requêtes préparées + paramètres, tu ne devrais pas avoir de soucis de fermeture de chaines .

D’ailleurs, je ferais plutôt :

   $requete2 = $dbh2->prepare('update `view` set `text` = ? where title = ?');
   $requete2->execute(array($textEncoder, 'reiki'));

Edité le 14/11/2012 à 20:48

<<<<<<<<<<<<<<<<<<Sa a l’air de marcher sauf que quand j’edtite le text sa me vide tout le yrxte.

Comment resoudre sa ?