Bonjour à tous,
J'ai cette requête PDO :
Je la construit donc par rapport à certaines conditions.
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 $insertion = "INSERT INTO neuro_event(patient_id,event_date, date_pour_Tri, position"; if($arr[1] == "radio" || $arr[1] == "chimio" || $arr[1] == "vaccinotherapy" || $arr[1] == "targetedtherapy") { $insertion.= ", remarque, id_debut_traitement"; } $insertion.= ") VALUES (?, ?, ?, 0"; if($arr[1] == "radio" || $arr[1] == "chimio" || $arr[1] == "vaccinotherapy" || $arr[1] == "targetedtherapy") { if(isset($arr_id[2])) { $insertion.= ", 'fin', ?"; //si c'est un examen médical, je mets "fin" et je mets l'id du traitement de début pour pouvoir retrouver le traitement de fin plus facilement } else $insertion.= ", 'debut', ?"; //si c'est un examen médical, je mets "début", je mets '' autrement erreur car un des champs n'est pas mise à jour } $insertion.= ") ";
Le tableau de paramètres est aussi construit via les conditions ci-dessus :
à l'exécution, j'obtiens ce message d'erreur :
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 if($arr[1] == "radio" || $arr[1] == "chimio" || $arr[1] == "vaccinotherapy" || $arr[1] == "targetedtherapy" || $arr[1] == "radio_fin" || $arr[1] == "chimio_fin" || $arr[1] == "vaccinotherapy_fin" || $arr[1] == "targetedtherapy_fin" ) { if(isset($arr_id[2])) { $req->execute(array( ":dmu"=>$_SESSION['dmu'], ":valeur"=>($_POST['valeur'] == '0000-00-00') ? NULL : $_POST['valeur'], ":valeur2"=>($_POST['valeur'] == '0000-00-00') ? NULL : $_POST['valeur'], ":id_debut"=>$_POST['id_debut'] )); } else $req->execute(array( ":dmu"=>$_SESSION['dmu'], ":valeur"=>($_POST['valeur'] == '0000-00-00') ? NULL : $_POST['valeur'], ":valeur2"=>($_POST['valeur'] == '0000-00-00') ? NULL : $_POST['valeur'], ":id_debut"=>"" )); } else //ce n'est pas un traitement avec un début et une fin, j'utilise un autre tableau { $req->execute(array( ":dmu"=>$_SESSION['dmu'], ":valeur"=>($_POST['valeur'] == '0000-00-00') ? NULL : $_POST['valeur'], ":valeur2"=>($_POST['valeur'] == '0000-00-00') ? NULL : $_POST['valeur'] )); } //var_dump($datas); //echo str_replace(array_keys($datas), array_values($datas), $req->queryString); }
La ligne 172 est la suivante :<br />
<b>Fatal error</b>: Uncaught exception 'PDOException' with message 'SQLSTATE[IMSSP]: Tried to bind parameter number -1. SQL Server supports a maximum of 2100 parameters.' in C:\Program Files (x86)\EasyPHP-5.3.6.0\www\Neuro2\AJAX\Enregistrer_info_event_on_change.php:172
Stack trace:
#0 C:\Program Files (x86)\EasyPHP-5.3.6.0\www\Neuro2\AJAX\Enregistrer_info_event_on_change.php(172): PDOStatement->execute(Array)
#1 {main}
thrown in <b>C:\Program Files (x86)\EasyPHP-5.3.6.0\www\Neuro2\AJAX\Enregistrer_info_event_on_change.php</b> on line <b>172</b><br />
C'est en fiait la fin du tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ));
Auriez-vous une idée svp ?
Merci d'avance et bon dimanche.
beegees
Partager