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
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 ?