Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
Je viens de débuter avec Postgres en utilisant PHP et déjà, voilà le problème!
Je me connecte sans problème à ma base mais quand j'essaie d'inserer des données dans la seule table existence, on me dit qu'un colonne n'existe pas. voici donc mon code:
$sql=pg_query($conn,"INSERT INTO utilisateurs (pseudo, motdepasse) VALUES ($pseudo,$password) RETURNING id")or die ('Erreur connexion'. pg_last_error($conn));
c'est donc un formulaire de login simple que j'utilise, et quand je saisi "Gentil" dans le champ login, et un mot de passe quelconque, j'ai ce message d'erreur quand je clique sur envoyer:
Warning: pg_query() [function.pg-query]: Query failed: ERREUR: la colonne « gentil » n'existe pas LINE 1: ...RT INTO utilisateurs (pseudo, motdepasse) VALUES (gentil,gen... ^ in C:\wamp\www\zend_test_site\connexion.php on line 27
Erreur connexionERREUR: la colonne « gentil » n'existe pas LINE 1: ...RT INTO utilisateurs (pseudo, motdepasse) VALUES (gentil,gen... ^
pourtant dans la console quand je tape \d , j'ai bien la table complète avec les champs spécifiés ci-haut (en minuscule tous).
Merci
Remarque: je viens de remarquer que si dans la requête je remplace les variables php ($pseudo,$password) par des valeurs en dur ('papa','maman') la requête s’exécute et réinsertion est bien constaté, faut-il faire quoi pour ces variables?
Dernière modification par gentil2005 (01/11/2012 10:12:39)
Hors ligne
Bonjour,
il faut entourer vos valeurs de simples cotes dans la requête générée. Il est important d'échapper la chaîne également pour plus de sécurité (pg_escape_string() par exemple).
Julien.
https://rjuju.github.io/
Hors ligne
Merci beaucoup pour l'attention!
Voilà comment je recois mes variables:
$pseudo = pg_escape_string($_POST['pseudo']);
$password = pg_escape_string($_POST['password']);
Donc je pense qu'elles sont echapées.
Comment on fait pour les entourer des simples cotes?
ceci ne marche pas?
$sql=pg_query($conn,"INSERT INTO utilisateurs (pseudo, motdepasse) VALUES (".$pseudo.",".$password.") RETURNING id")or die ('Erreur connexion'. pg_last_error($conn));
Hors ligne
je dirais plutôt
$sql=pg_query($conn,"INSERT INTO utilisateurs (pseudo, motdepasse) VALUES ('".$pseudo."','".$password."') RETURNING id")or die ('Erreur connexion'. pg_last_error($conn));
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1