Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai la fonction suivante :
function saisieRef($nom_table,$lib,$nom_champ) {
$lib = pg_escape_string($lib);
$sql = "INSERT INTO ".$nom_table." (lib".$nom_champ." VALUES ('$lib')";
return $this->db->query($sql,"",_FUNCTION_,_FILE_);
}
Quand je lance mon programme, l'insert se fait bien dans la BDD mais j'ai un WARNING, un DATABASE ERROR et un PostgreSQL error à l'écran.
J'ai le même principe pour un UPDATE et là, aucun message d'erreur à l'écran, je ne comprends pas pourquoi.
Quelqu'un a-il une idée ?
Hors ligne
Quand vous avez une erreur, donnez l'erreur en question, ça peut aider...
Guillaume.
Hors ligne
Cela étant dit, il manque une parenthèse fermante après le nom du champ. Et il est important d'échapper aussi les noms d'objets (pg_escape_identifier).
Guillaume.
Hors ligne
La parenthese manquante est une erreur de recopie du code. Dans mon code, elle est bien présente.
L'erreur est :
Warning: pg_exec() [function.pg-exec]: Query failed: ERREUR: erreur de syntaxe sur ou près de « u » LINE 1: ...nature as libelle FROM natures WHERE libnature='l'u' ORDER B... ^ in D:\wamp\wamp\www\opex\libs\phptoolsoft\class.db.postgres.php on line 109
Database error: Invalid SQL: SELECT numnature as code, libnature as libelle FROM natures WHERE libnature='l'u' ORDER BY libnature
PostgreSQL Error: 1 (ERREUR: erreur de syntaxe sur ou près de « u » LINE 1: ...nature as libelle FROM natures WHERE libnature='l'u' ORDER B... ^)
Ajout Réussi.
Je rappelle que l'insertion se fait bien :
- le message de retour est bien ajout réussi
- la BDD est bien mise à jour
- lors de l'affichage de la table j'ai bien la ligne inséré qui s'affiche
Hors ligne
Le message est très clair. Le problème n'a rien à voir avec l'INSERT, mais avec un SELECT et le problème de syntaxe est dû au filtre : WHERE libnature='l'u'... la valeur de comparaison de libnature n'est pas échappée.
Guillaume.
Hors ligne
Merci j'étais tellement obnubilé par le fait que lors de l'ajout j'avais le message et pas lors de la modification que je n'ai pas fait attention que l'erreur était sur le select qui ne faisait pas la même chose dans les 2 cas.
Merci beaucoup.
La fin de semaine est dure.
Hors ligne
Pages : 1