Bonjour à toutes et à tous,
J'ai une table avec 175 champs. Tout fonctionne :Ajout, Modification, extraction de données.
Je souhaite rajouter 60 champs (pour un total de 235) à cette table (15 ensembles de 4 champs : N°, date de création, date d'utilisation, définition) et là j'ai la requête de modification qui ne fonctionne pas
après de multiples essais (2 jours à m'arracher les cheveux) j'en arrive à me demander s'il y a une nombre maximum de champs dans une table MySQL ?
Si je rajoute 4 champs (1 ensemble) ça fonctionne, si je rajoute 8 champs (2 ensembles) ça fonctionne, si je rajoute 12 champs (3 ensembles) ça ne fonctionne plus.
Voici ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
 
$MonChamp1= strip_tags($_POST['PJ1]);
/*...*/
$MonChamp175 = strip_tags($_POST['PJ175']);
$NouvChampA1 = strip_tags($_POST['PJ176']);	
$NouvChampB1 = strip_tags($_POST['PJ177']);
$NouvChampC1 = strip_tags($_POST['PJ178']);
//...
$NouvChampA2 = strip_tags($_POST['PJ191']);	
$NouvChampB2 = strip_tags($_POST['PJ192']);
$NouvChampC2 = strip_tags($_POST['PJ193']);
//...
$NouvChampA3 = strip_tags($_POST['PJ206']);	
$NouvChampB3 = strip_tags($_POST['PJ207']);
$NouvChampC3 = strip_tags($_POST['PJ208']);
//...
$NouvChampA4 = strip_tags($_POST['PJ221']);	
$NouvChampB4 = strip_tags($_POST['PJ222']);
$NouvChampC4 = strip_tags($_POST['PJ223']);
//...
// pour vérifier la récup des données j'affiche
echo '<br />'.'Blabla : ' . $MonChamp1;
...
echo '<br />'.'Blabla : ' . $MonChamp175;
 
echo '<br />';
echo '<br />'.'Blabla  : ' . $NouvChampA1;
echo '<br />'.'Blabla  : ' . $NouvChampB1;
echo '<br />'.'Blabla  : ' . $NouvChampC1;
 
echo '<br />';
echo '<br />'.'Blabla  : ' . $NouvChampA2;
echo '<br />'.'Blabla  : ' . $NouvChampB2;
echo '<br />'.'Blabla  : ' . $NouvChampC2;
 
echo '<br />';
echo '<br />'.'Blabla  : ' . $NouvChampA3;
echo '<br />'.'Blabla  : ' . $NouvChampB3;
echo '<br />'.'Blabla  : ' . $NouvChampC3;
 
echo '<br />';
echo '<br />'.'Blabla  : ' . $NouvChampA4;
echo '<br />'.'Blabla  : ' . $NouvChampB4;
echo '<br />'.'Blabla  : ' . $NouvChampC4;
 
//-----------------------------------------------------
// Informations pour la connexion à la base de données 
//-----------------------------------------------------
$nom_du_serveur  = "mysql:host=localhost;dbname=MaBase";
$nom_utilisateur = "MonNom";
$mot_de_passe    = "MonPsd";
 
			$options         = array(
				PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8",
				PDO::ATTR_CASE               => PDO::CASE_LOWER,
			);
 
// Si tout va bien, on peut continuer
//---------------------------------------
// Connexion au Serveur en utilisant PDO 
//---------------------------------------
try
{
   $link = new PDO($nom_du_serveur, $nom_utilisateur, $mot_de_passe, $options); // Instanciation de l'objet PDO (notre connexion)
   echo '<br />'.'Juste après la connexion au serveur';
}
catch (Exception $e) 
{
   echo "Connexion à MySql impossible : ", $e->getMessage();
   die();    // En cas d'erreur, on affiche un message et on arrête tout
}
 
try
{
 
   echo '<br />'.'Juste avant la requête préparée';
// Utilisation d'une requête préparée
$update = $link->prepare('UPDATE matable SET 
MonChamp1 = :MonChamp1, ... MonChamp175 = :MonChamp175, 
NouvChampA1 = :NouvChampA1, NouvChampA2 = :NouvChampA2, NouvChampA3 = :NouvChampA3, , NouvChampA4 = :NouvChampA4, 
NouvChampB1 = :NouvChampB1, NouvChampB2 = :NouvChampB2, NouvChampB3 = :NouvChampB3,  NouvChampB4 = :NouvChampB4, 
NouvChampC1 = :NouvChampC1, NouvChampC2 = :NouvChampC2, NouvChampC3 = :NouvChampC3, , NouvChampC4 = :NouvChampC4 
WHERE id = :id');
 
$update->bindParam('MonChamp1 ', $MonChamp1 );
...
$update->bindParam('MonChamp175 ', $MonChamp175 );
$update->bindParam('NouvChampA1', $NouvChampA1);
$update->bindParam('NouvChampA2', $NouvChampA2);
$update->bindParam('NouvChampA3', $NouvChampA3);
$update->bindParam('NouvChampA4', $NouvChampA4);
$update->bindParam('NouvChampB1', $NouvChampB1);
$update->bindParam('NouvChampB2', $NouvChampB2);
$update->bindParam('NouvChampB3', $NouvChampB3);
$update->bindParam('NouvChampB4', $NouvChampB4);
$update->bindParam('NouvChampC1', $NouvChampC1);
$update->bindParam('NouvChampC2', $NouvChampC2);
$update->bindParam('NouvChampC3', $NouvChampC3);
$update->bindParam('NouvChampC4', $NouvChampC4);
 
echo '<br />'.'Juste avant exécution de la requête préparée';
$update ->execute();
echo '<br />'.'Juste après exécution de la requête préparée';
return($update->errorInfo());
}
catch ( Exception $e )
{
				$link->rollback();
				echo "Une erreur est survenue dans la requête UPDATE : ", $e->getMessage();
				die();
}		
$update->closeCursor();
 
$link = null;	// et maintenant, je ferme la connexion PDO
Je n'ai pas d'erreur affichée par le gestionnaire, mon affichage de contrôle affiche bien le contenu de mes input mais :
la table ne se met pas à jour.
Si je supprime le 3ème ensemble (NouvChampC1 à C4) elle se met à jour ???
Pouvez-vous m'aider?
merci