Bonjour,
J'ai une classe d'abstraction en PHP, qui marchais jusque la très bien, qui interface à chaque fois une ligne d'une base de donnée sous postgrès, avec des requètes préparées par PDO.
Dès que je veux enregistrer les données issues de ma DB dans cette même DB, sans les modifier, je me retrouve avec une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
SQLSTATE[42P08]: Ambiguous parameter: 7 ERROR:  inconsistent types deduced for parameter $1
DETAIL:  text versus character varying
Voila la requète en elle même
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
 
PDO::prepare (UPDATE etat_civil SET numero_etudiant=:numero_etudiant,nom_patronymique=:nom_patronymique,nom_usage=:nom_usage,prenom=:prenom,sexe=:sexe,date_naissance=:date_naissance,nationalite=:nationalite,tel_fixe=:tel_fixe,tel_mobile=:tel_mobile,courriel=:courriel,adresse=:adresse,cp=:cp,ville=:ville,pays=:pays,photo=:photo,commentaire=:commentaire,numero_p8=:numero_p8,courriel_visible=:courriel_visible WHERE numero_etudiant=:numero_etudiant)
 
PDOStatement::bindValue (array ( 0 => ':numero_etudiant', 1 => '12345',))
PDOStatement::bindValue (array ( 0 => ':nom_patronymique', 1 => 'Love',))
PDOStatement::bindValue (array (  0 => ':nom_usage',  1 => NULL,  2 => 0,))
PDOStatement::bindValue (array (  0 => ':prenom',  1 => 'angel',))
PDOStatement::bindValue (array (  0 => ':sexe',  1 => 'N',))
PDOStatement::bindValue (array (  0 => ':date_naissance',  1 => 77760000,))
PDOStatement::bindValue (array (  0 => ':nationalite',  1 => NULL,  2 => 0,))
PDOStatement::bindValue (array (  0 => ':tel_fixe',  1 => NULL,))
PDOStatement::bindValue (array (  0 => ':tel_mobile',  1 => NULL,  2 => 0,))
PDOStatement::bindValue (array (  0 => ':courriel',  1 => NULL,  2 => 0,))
PDOStatement::bindValue (array (  0 => ':adresse',  1 => 'rue',))
PDOStatement::bindValue (array (  0 => ':cp',  1 => '12345',))
PDOStatement::bindValue (array (  0 => ':ville',  1 => 'paris',))
PDOStatement::bindValue (array (  0 => ':pays',  1 => NULL,  2 => 0,))
PDOStatement::bindValue (array (  0 => ':photo',  1 => NULL,  2 => 0,))
PDOStatement::bindValue (array (  0 => ':commentaire',  1 => NULL,  2 => 0,))
PDOStatement::bindValue (array (  0 => ':numero_p8',  1 => '12345',))
PDOStatement::bindValue (array (  0 => ':courriel_visible',  1 => 'f',))
Rien n'y fait, même de passer tous les champs à NULL ( sauf numero_etudiant, la clef primaire, en character varying(32) ).
Quelqu'un aurais une idée du problème ? ( Ou mieux, de la solution )

Merci.

Edit : passer le champ numero_etudiant en type text résoudrais le problème, mais ça ne m'arrange pas