|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 6 ![]() |
Bonjour,
Je veux utiliser la fonction suivante pour insérer des lignes ds une table depuis un script php: create or replace function creauserauth(varchar,varchar,varchar,varchar,varchar) returns void as $$ declare sir alias for $1; ema alias for $2; com alias for $3; newus alias for $4; psw alias for $5; ret TEXT; begin insert into userauth(siret,email,commonname,username,pswd) values (sir,ema,com,newus,psw); return; end; $$ language 'plpgsql'; et le script php : $sql2 = "select creauserauth($tab[2],$tab[3],$tab[9],$tab[8],$tab[10])"; $stmt= $dbh->prepare($sql2); $stmt->execute(); et voilà le rendu : erreur ! : SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "GFH" at character 58 Je n'arrive pas à comprendre l'erreur... Merci d'avance aux éclairés... Patrick Charda |
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : mars 2007 Messages : 107 ![]() |
c'est quoi les valeurs qu'il y a dans les tab ???
sinon pour la requête insert, sir les champs sont de type text, ne faut-il pas des ' autour des chaines ? Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 6 ![]() |
Merci pour la piste : effectivement il fallait "caster" comme suit :
CREATE OR REPLACE FUNCTION creauserauth("varchar", "varchar", "varchar", "varchar", text) RETURNS void AS $BODY$ insert into userauth(siret,email,commonname,username,pswd) values (CAST($1 as integer),cast($2 as varchar(60)),cast($3 as varchar(35)),cast($4 as varchar(10)),CAST($5 as text)); $BODY$ LANGUAGE 'sql' VOLATILE; et à l'appel depuis PHP utiliser les accolades : $sql2 = "select * from creauserauth('{$tab[2]}','{$tab[3]}','{$tab[9]}','{$tab[8]}','{$tab[10]}')"; $result = $dbh->query($sql2); @ bientôt Patrick Charda |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com