MySQL: chaines de char, apostrophes et BD

tonguim -  
kleyde89 Messages postés 20 Statut Membre -
Bonjour,

je ne peux pas inserer dans ma table, des chaînes de caracteres qui contiennent des apostrophes. Exemple de chaine de caractère que je ne peux insérer: l'actualité sur le site web de l'uo.
Comment puis je résoudre ce problème? Merci

NB: j'utilise PHP pour l'insertion des données dans la table. Voici ma requête:

		<?php
			$connection=mysql_connect("localhost", "root", "");
			if($connection)
			{
				$bd=mysql_select_db("sitewuo");
				if($bd)
				{	
					//$date=date("Y-n-d H:i:s");
					$requete="insert into articles values ('', '$_POST[rubrique]', '$_POST[titre]', '$_POST[resume]', '$_POST[corps]', null)";
					mysql_query($requete) or die(mysql_error());
				}
				else
					die (mysql_error());
			}
			else
				die (mysql_error());
		?>


// ma table mySql


CREATE TABLE `articles` (
`numero` VARCHAR( 5 ) NOT NULL ,
`titre` VARCHAR( 255 ) NOT NULL ,
`resume` TEXT NOT NULL ,
`corps` TEXT NOT NULL ,
`date` timestamp( 14) NOT NULL ,
PRIMARY KEY ( `numero` )
);


J'ai pensé, a mettre des caracteres d'échappement, mais les textes que je dois stocker dans la table s'étendent sur des dizaines de lignes. Alors mettre des \' a chaque fois que je rencontre des apostrophes, ce n'est pas du tout pratique. Il doit y avoir bien un autre moyen, non?

3 réponses

Utilisateur anonyme
 
Le sujet exact de mon message est plutôt: chaines de caractères avec apostrophes, et Base de Données MySQL
0
StreM Messages postés 515 Statut Membre 124
 
Essaie ca :
$requete="insert into articles values ('', '".$_POST[rubrique]."', '".$_POST[titre]."', '".$_POST[resume]."', '".$_POST[corps]."', null)";

On ne peut pas mettre des variables de type array entre guillemets.
Il faut en sortir. C'est dommage, mais c'est comme ca.
0
Erdnax Messages postés 2279 Statut Contributeur 497
 
T'es sûr que ça vaut aussi pour les doubles guillemets ?

L'erreur vient pas plutôt de ses $_POST[rubrique] qui n'ont pas eux de ' ? Par exemple :
$_POST['rubrique']
Et sinon, pour mettre des caractères d'échapement à tes textes, s'ils sont rentrés par des formulaires, tu peux utiliser la fonction addslashes qui fera ça pour toi ;)
0
StreM Messages postés 515 Statut Membre 124 > Erdnax Messages postés 2279 Statut Contributeur
 
Ah oui, aussi !
Enfin perso, il me semble que
echo "tralala $_POST['var'] youpie"; 
renvoie une erreur
0
tonguim
 
Merci à strem et erdnax. J'ai resolu le problème des apostrophes en utilisant la fonction addslashes de php et ca marche.

si $texte = "Un exemple d'utilisation de l'apostrophe";

alors $texte = addslashes($texte) retournera "Un exemple de l\\'utilisation de l\\'apostrophe" ...
0
kleyde89 Messages postés 20 Statut Membre
 
bonjour,

j'ai le meme probleme que toi avec les apostrophes
la fonction addslashes tu l'utilise a quel moment?

juste apres la definition de ta requete?
0