Page 1 sur 1

[Corrigé 3.1.17] 'PDOException' with message 'SQLSTATE[420

Posté : jeu. 9 févr. 2017 22:16
par franck1988
Bonjour,

Je viens de finaliser l'installation de ce magnifique programme afin de le mettre en place pour ma société, mais je rencontre un problème lors de l'importation LDAP de mes utilisateurs.
Seul une trentaine d'utilisateur sur les 300 sont importés.
j'ai un message d'erreur pour un utilisateur, et j'ai l'impression qu'il bloque le reste de l'importation.

Ci-dessous message d'erreur :

Code : Tout sélectionner

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Alpe d'Huez','Alpe Agence','04 76 00 00 00')' at line 1' in /var/www/html/core/ldap.php:415 Stack trace: #0 /var/www/html/core/ldap.php(415): PDO->exec('INSERT INTO tus...') #1 /var/www/html/admin/user.php(884): include('/var/www/html/c...') #2 /var/www/html/admin.php(26): include('/var/www/html/a...') #3 /var/www/html/index.php(587): include('/var/www/html/a...') #4 {main} thrown in /var/www/html/core/ldap.php on line 415
Auriez-vous une idée ?

Merci d'avance pour votre aide !

Re: Uncaught exception 'PDOException' with message 'SQLSTATE

Posté : ven. 10 févr. 2017 09:20
par Flox
Bonjour,

dans votre fichier ./core/ldap.php pouvez vous remplacer:

Code : Tout sélectionner

//create GestSup account
							//escape special char for SQL query
							$givenname = $db->quote($givenname); 
							$sn = $db->quote($sn); 
							$streetaddress = $db->quote($streetaddress); 
							$company= $db->quote($company); 
							$title= $db->quote($title); 
						$cnt_create=$cnt_create+1;
						if($_GET['action']=='run') {
							echo '<i class="icon-plus-sign green bigger-130"></i><font color="green"> '.T_('Utilisateur').' <b>'.$givenname.' '.$sn.'</b> ('.$samaccountname.') '.T_('à été crée').'.</font><br />';
							$db->exec("INSERT INTO tusers (login,firstname,lastname,profile,mail,phone,address1,zip,city,company,fax) VALUES ('$samaccountname',$givenname,$sn,'2','$mail','$telephonenumber',$streetaddress,'$postalcode','$l',$company,'$fax')");
						} else {
							echo '<i class="icon-plus-sign green bigger-130"></i><font color="green"> '.T_('Création de l\'utilisateur').' <b>'.$givenname.' '.$sn.'</b> ('.$samaccountname.').</font><br />';
						}

par

Code : Tout sélectionner

//create GestSup account
							//escape special char for SQL query
							$givenname = $db->quote($givenname); 
							$sn = $db->quote($sn); 
							$streetaddress = $db->quote($streetaddress); 
							$company= $db->quote($company); 
							$title= $db->quote($title); 
							$l= $db->quote($l);
							$cnt_create=$cnt_create+1;
						if($_GET['action']=='run') {
							echo '<i class="icon-plus-sign green bigger-130"></i><font color="green"> '.T_('Utilisateur').' <b>'.$givenname.' '.$sn.'</b> ('.$samaccountname.') '.T_('à été crée').'.</font><br />';
							$db->exec("INSERT INTO tusers (login,firstname,lastname,profile,mail,phone,address1,zip,city,company,fax) VALUES ('$samaccountname',$givenname,$sn,'2','$mail','$telephonenumber',$streetaddress,'$postalcode',$l,$company,'$fax')");
						} else {
							echo '<i class="icon-plus-sign green bigger-130"></i><font color="green"> '.T_('Création de l\'utilisateur').' <b>'.$givenname.' '.$sn.'</b> ('.$samaccountname.').</font><br />';
						}

cdt

Re: [Corrigé 3.1.17] 'PDOException' with message 'SQLSTATE[4

Posté : ven. 10 févr. 2017 20:15
par franck1988
Super, merci, ça fonctionne !