Rechercher : dans
Par :

MySQL: chaines de char, apostrophes et BD

Dernière réponse le 22 sep 2005 à 20:18:50 tonguim, le 22 sep 2005 à 11:43:10 
 Signaler ce message aux modérateurs

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?

Meilleures réponses pour « MySQL: chaines de char, apostrophes et BD » dans :
Les guillemets, apostrophes et les chaînes VoirComment jouer avec les guillemets et les apostrophes dans les chaînes 1. Préambule 2. Éviter une coupure dans la chaîne 3. Ajouter un guillemet dans la chaîne 3.1 Avec l'apostrophe 3.2 Avec l'ASCII 3.3 Directement 3.3.1 Méthode...
MySQL en console sur Windows : désactiver le bip d'erreur VoirLorsque vous utilisez MySQL en console sur Windows, chaque erreur provoque un bip. Pour le désactiver, il vous suffit simplement de rajouter le paramètre -b dans votre chaîne de connexion : mysql -b -h serveur -u utilisateur -p Vos voisins...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...

1

tonguim, le 22 sep 2005 à 11:52:25

Le sujet exact de mon message est plutôt: chaines de caractères avec apostrophes, et Base de Données MySQL

Répondre à tonguim

2

StreM, le 22 sep 2005 à 13:42:50

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.

Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

3

Erdnax, le 22 sep 2005 à 15:28:38

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 ;)
Punvf cnf dhbv zrgger...

Répondre à Erdnax

4

StreM, le 22 sep 2005 à 17:15:01

Ah oui, aussi !
Enfin perso, il me semble que

echo "tralala $_POST['var'] youpie"; 
renvoie une erreur
Moins le blanc est intelligent, plus le noir lui parait bête

Répondre à StreM

5

 tonguim, le 22 sep 2005 à 20:18:50

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

Répondre à tonguim