Mise à jour de la base de données MySQL
csi_bern
-
giheller Messages postés 1960 Date d'inscription Statut Membre Dernière intervention -
giheller Messages postés 1960 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai conçu la base MySQL ainsi :
Le problème est que quand je veux faire une mise à jour d'entrées (que je fais à partir d'une page php qui reprends tous les enregistrements en les classant dans des inputs), les champs "stadt" et "gruppe" (et uniquement ceux-là) ajoute à chaque fois un espace après la valeur (donc 5 mises à jour = 5 échappements).
J'ai contrôlé, dans la reprise de mes inputs, je n'insère pas de caractère d'échappement.
Merci d'avance pour les réponses
J'ai conçu la base MySQL ainsi :
CREATE TABLE IF NOT EXISTS `ma` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `vorname` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `ak` varchar(4) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `geb` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `intern` int(4) NOT NULL, `npa` int(4) NOT NULL, `stadt` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `strasse` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `mobile` varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `privat` varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `gruppe` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `pos` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `fg1` varchar(2) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `fg2` varchar(2) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `fg3` varchar(2) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `fg4` varchar(2) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `fg5` varchar(2) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=68 ;
Le problème est que quand je veux faire une mise à jour d'entrées (que je fais à partir d'une page php qui reprends tous les enregistrements en les classant dans des inputs), les champs "stadt" et "gruppe" (et uniquement ceux-là) ajoute à chaque fois un espace après la valeur (donc 5 mises à jour = 5 échappements).
J'ai contrôlé, dans la reprise de mes inputs, je n'insère pas de caractère d'échappement.
Merci d'avance pour les réponses
Configuration: Windows XP / Internet Explorer 8.0
2 réponses
-
bonsoir,
la longueur de la requête ainsi générée est peut être plus grande que le buffer, d'où ce découpage.
recomposez votre requête en plusieurs fois
exemple
$query = ...
$query .= la suite
...
-
Merci Giheller,
Malheureusement, même en décomposant comme suit, les mêmes problèmes apparaissent :$query ="UPDATE ma SET id = '$id', name = '$name', vorname = '$vorname', ak = '$ak', geb = '$geb',"; $query .="intern = '$intern', npa = '$npa', stadt = '$stadt', strasse = '$strasse',"; $query .= "mobile = '$mobile', privat = '$privat', gruppe = '$gruppe', pos = '$pos', fg1 = '$fg1', fg2 = '$fg2',"; $query .="fg3 = '$fg3', fg4 = '$fg4', fg5 = '$fg5'"; mysql_query($query.' WHERE id = '.$ligne['id']);
-
-
bonjour
essaie ainsi
$query ="UPDATE ma SET id = '".$id."', name = '".$name."', vorname = '".$vorname."', ak = '".$ak."', geb = '".$geb."',";
$query .="intern = '".$intern."', npa = '".$npa."', stadt = '".$stadt."', strasse = '".$strasse."',";
$query .= "mobile = '".$mobile."', privat = '".$privat."', gruppe = '".$gruppe."', pos = '".$pos."', fg1 = '".$fg1."', fg2 = '".$fg2."',";
$query .="fg3 = '".$fg3."', fg4 = '".$fg4."', fg5 = '".$fg5."'";