PDO qui marche pas

Fermé
thebarbraius - 14 nov. 2012 à 07:18
 Profil bloqué - 14 nov. 2012 à 23:13
Bonjour,

Voici le code.
Sa m'affiche que le code arrive a sa fin sans erreur, pourtant ma NDD reste la meme.

	function editReiki()
	{
		$dbh = mysql::getInstance();
		$sql = "SELECT *
		FROM 'view'
		WHERE title = 'reiki'";
		$requete = $dbh->prepare($sql);
		$requete->execute();
		
		$row = $requete->fetch(PDO::FETCH_ASSOC);
		$text = $row['text'];
		$text = htmlentities($text);
		
		$dbh2 = mysql::getInstance();
		$sql2 = "UPDATE view
				 SET text = '$text''
				 WHERE title = 'reiki'";
		
		$requete2 = $dbh2->prepare($sql2);
		$requete2->execute();
		echo 'Enregistrement effestué.';
	}



Ou est l'erreur ?

17 réponses

baladur13 Messages postés 46412 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 2 mai 2024 13 233
14 nov. 2012 à 16:39
Bonjour
Extrait de la Charte CCM

Les propositions d'aide par messagerie privée ou en prise de contrôle à distance ne sont pas permises sur le forum et les intervenants verront leurs messages supprimés.


https://www.commentcamarche.net/infos/25855-charte-d-utilisation-de-commentcamarche-net-respect-d-autrui/

Désolé
1
Utilisateur anonyme
14 nov. 2012 à 16:49
Bonjour baladur

Petite question : la Charte parle des propositions d'aide, en l'occurrence il s'agissait de demandes. J'en déduis que les demandes de thebarbarius, bien qu'excessivement insistantes, ne sont pas explicitement interdites.
Est-ce que je fais une mauvaise interprétation de la Charte ?
0
baladur13 Messages postés 46412 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 2 mai 2024 13 233
14 nov. 2012 à 17:17
Salut
"Propositions" n'implique pas forcement la notion de qui propose quoi..
Que ce soit de l'aide subie ou demandée... pour moi c'est idem, l'aide se fait sur le forum ou ne se fait pas.
Le but des forums étant que les solutions apportées puissent éventuellement servir à la communauté, toute aide hors forum, ne remplissant, plus ce but est donc à proscrire.
0
Utilisateur anonyme
14 nov. 2012 à 17:45
Je suis bien d'accord sur la signification de cet extrait de la Charte et sur ce qui le motive..
C'est sur sa formulation que je trouve qu'il y a un problème. "Propositions" et "Demandes" ne peuvent en aucun cas être considérés comme synonymes, et thebarbarius n'a fait que des demandes, pas des propositions.
"Propositions" n'implique pas forcement la notion de qui propose quoi : je ne suis pas sûr de comprendre le sens de cette remarque. Dans "A propose quelque chose à B", il me semble bien au contraire que les rôles de A et B ne sont pas du tout symétriques.
Mais bon, c'est du détail, nous sommes d'accord sur le fond.
0
baladur13 Messages postés 46412 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 2 mai 2024 13 233
14 nov. 2012 à 18:14
Il proposait d'être aidé via une prise en main de sont PC...
Voila la proposition
0
Utilisateur anonyme
14 nov. 2012 à 18:50
Il proposait d'être aidé
Merveilleuse forme passive, qui permet d'inverser grammaticalement le sujet et le complément.... Mais grammaticalement seulement.
Une proposition d'être aidé n'a rien d'une proposition d'aide.
J'arrête de jouer là.
Bonne soirée
0
astuces72 Messages postés 7724 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 27 avril 2024 1 637
14 nov. 2012 à 08:39
slt

c'est normal ce simple quote en plus ?
SET text = '$text''
0
Profil bloqué
14 nov. 2012 à 09:21
Non c'est pas normal.

D'autre erreur ?
0
Profil bloqué
14 nov. 2012 à 11:10
j'ai trouvé une autre erreur.

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é.


Comment la corrigé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
14 nov. 2012 à 12:07
Bonjour

Là, c'est que ta requête est incorrecte. Tu demandes un champ qui n'existe pas. C'est peut être que tu as supprimé trop de quotes, Quelle est la requête concernée ?
0
$sql2 = "UPDATE 'view'
SET text = '$textEncoder'
WHERE title = 'reiki'";
0
Utilisateur anonyme
14 nov. 2012 à 13:53
J'ai un gros doute là. Tu es sûr qu'il y a bien des apostrophes autour de '$textEncoder' et que le message d'erreur est bien celui que tu dis ? Car il n'y a aucun champ 'lt' dans cette requête, il ne peut pas y avoir d'erreur sur ce champ.

Fais un echo htmlentities($sql2); pour voir quelle est la requête réellement effectuée.
0
Profil bloqué
14 nov. 2012 à 14:35
Pas moyen d'afficher $sql2 le script bloque avant.
0
Alors ce n'est pas cette requête qui bloque...
As-tu toujours le message d'erreur ? Si oui, quelle est la requête exécutée par la ligne 25 ?

edit : tu avais bien mis le echo $sql2 AVANT de préparer / exécuter la requête ?
0
Profil bloqué
14 nov. 2012 à 15:02
Voila me suis trompé voila le resltat de $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é.
0
D'accord, c'est parce que ton $text contient des caractères spéciaux.
Alors il faut utiliser PDO 'proprement', c'est à dire en paramétrant la requête :
  $sql2 = "UPDATE view 
     SET text = ? 
     WHERE title = 'reiki'"; 
   
  $requete2 = $dbh2->prepare($sql2); 
  $requete2->execute(array($text)); 


tu remplaces les valeurs des champs par un ? (sans quotes) ou un nom de paramètre
Puis tu passes les valeurs à mettre à la place des ? dans un array lors de l'execute
Renseigne-toi sur PDO, c'est fait pour être utilisé comme ça.
Au fait, tu as vraiment besoin de 2 instances mysql ?
0
Utilisateur anonyme
14 nov. 2012 à 15:32
Je t'ai donné 3 lignes de codes à mettre à la place de 3 lignes de ton code initial. Ce n'est pas très difficile de les copier les miennes et de les coller à la place des tiennes.
Je t'ai aussi donné un lien sur le chapitre PDO du manel PHP. Sa lecture ne peut que te faire du bien.

Pour ce qui est de temaviwer, je ne connais pas du tout. Après recherche je suppose que tu veux parler de teamviewer. Je ne connais pas non plus. Et même si je connaissais, le principe du forum est que tout se passe sur le forum, sauf bonne raison que je ne vois pas ici.
0
Utilisateur anonyme
14 nov. 2012 à 15:57
Tiens, tepviewer maintenant. Il n'est pas question d'utiliser ce truc là ou un autre. J'insiste aussi.
Si la requête s'exécute bien (mets un petit echo pour vérifier) et que rien n'est mis à jour dans ta base, c'est que tu n'as aucune ligne dont le champ title vaut 'reiki'.
As-tu vérifié que cette ligne existe ? Que 'reiki' est bien écrit comme ça, tout en minuscules et sans espaces avant ni après ?
0
Je voulais bien t'aider, mais tu ne m'imposes pas la méthode.
Je crois que j'en ai fait assez, j'abandonne.
0
Profil bloqué
14 nov. 2012 à 16:21
Non n'abondoné pas.


J'ai verifié toutes la requete est bonne.

C'estt peut etre les apostrophe qui pose probleme ?
0
Profil bloqué
14 nov. 2012 à 16:55
De l'aide SVP
0
Profil bloqué
14 nov. 2012 à 23:13
xxxxxDe l'aide SVP
0