Mise à jour de la base de données MySQL

Bonjour à tous,

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

  1. 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
    ...
    0
    1. 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']);
      
      0
  2. 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."'";
    0