Remplissage de postgres en php

Résolu
Bonjour,

onjour,

je n'arrive pas à remplir une table à partir de php bien que j'ai récupéré les info

//récupération des donnée
$date_redaction=$_POST["date"];
$typedocument=$_POST["typedocument"];

// enregistrement des fichiers sur le pc dans lequel est enregistré ce code au niveau de C:
$chemin_destination ='C:\ms4w\Apache\htdocs\telechargement_doc/';

//déplacement du dossier temporaire vers le dossier final
move_uploaded_file($_FILES['nom_du_fichier']['tmp_name'], $chemin_destination.$_FILES['nom_du_fichier']['name']);

move_uploaded_file($_FILES['nom_du_fichier2']['tmp_name'], $chemin_destination.$_FILES['nom_du_fichier2']['name']);

//ouverture de la BD
/* $db = pg_connect("host=orsay port=5432 dbname=gestion_documentaire user=pgt password=postgres1");

$query='SELECT DISTINCT "disponibilite" FROM "en_modifications" where "identifiant_document" like '.$_FILES['nom_du_fichier']['name']; //marché avec where like 1
$result=pg_query($query) or die('Echec de la requête :'.pg_last_error());

//ouverture de la BD pour remplissage des différente table
$db = pg_connect("host=orsay port=5432 dbname=gestion_documentaire user=pgt password=postgres1");

//enregistrement dans la table indices (table de base des fichiers qui sont stockés après en plusieurs version

$z=10;
$query='INSERT INTO indice (
id, type, date, disponibilite, titre)
VALUES ('.$z.','.$typedocument.','.str_replace("-","",$date_redaction).',"true",'.str_replace (".","",$_FILES['nom_du_fichier']['name']).')';

$resultat = pg_query($db, $query);

pg_close($db);

exit();

avant le exit si on place un echo de query on a
INSERT INTO indice ( id, type, date, disponibilite, titre) VALUES (10,procedure,07122009,"true",createtab1sql)

le message d'erreur est le suivant
Warning: pg_query() [function.pg-query]: Query failed: ERROR: column "procedure" does not exist LINE 3: VALUES (10,procedure,07122009,"true",createtab1sql)

les arguments des paramètres sont des "text"

merci d'avance de votre aide

Configuration: Windows XP
Firefox 3.5.5
Configuration: Windows XP
Firefox 3.5.5

6 réponses

  1. $query = 'INSERT INTO indice(id, type, date, disponibilite, titre) VALUES('.$z.',"'.$typedocument.'","'.str_replace("-","",$date_redaction).'", true,"'.str_replace(".","",$_FILES['nom_du_fichier']['name']).'")';
    1. salut,

      je te remerci pour ta réponse, j'ai essayé ta solution
      mais j'ai toujours la même erreur.

      Warning: pg_query() [function.pg-query]: Query failed: ERROR: column "procedure" does not exist LINE 1: ...e(id, type, date, disponibilite, titre) VALUES(10,procedure,... ^ in C:\ms4w\Apache\htdocs\telechargement_doc\upload1.php on line 103

      alors que le type des colonnes est
      id SERIAL PRIMARY KEY ,
      type VARCHAR (50 ) NOT NULL ,
      date VARCHAR (50 ) NOT NULL ,
      disponibilite VARCHAR (50 ) NOT NULL ,
      titre VARCHAR (50 ) NOT NULL

      je ne comprend pas ou est l'erreur.
      1. C'est parce que ton champ "disponibilite" est un VARCHAR, et on tente d'y insérer un BOOL (booléen).
        Donc soit tu entoures true par des guillemets, soit tu changes le type du champ en BOOL (la meilleur des solutions).
        1. salut,

          j'ai essayé les 2 solution bool ou de mettre des "true", en changeant de type cela n'a rien changé

          mais en essayant
          $db = pg_connect("host=orsay port=5432 dbname=gestion_documentaire user=pgt password=postgres1");
          //enregistrement des paramètres pour la table indice
          $query='INSERT INTO indicess
          VALUES ('.$identifant.','.$lien_document.','.$date_enregistrement.','.$type.','.$disponibilite_total.')';

          //execution de la requette d'enregistrement
          pg_query($db,$query);

          avec les variable en chiffre (autre chose j'ai des erreurs)
          CREATE TABLE indicess
          (
          identifiant integer NOT NULL,
          lien_document text,
          date_enregistrement text,
          "type" text,
          disponibilite_total text,
          CONSTRAINT identifiant PRIMARY KEY (identifiant)
          )
          WITHOUT OIDS;
          ALTER TABLE indicess OWNER TO pgt;
          1. salut,

            en faisant des essais j'ai trouvé la solution est

            $query='INSERT INTO indice
            VALUES ($identifant,'$lien_document','$date_enregistrement','$type','$disponibilite_total')';

            merci pour vos conseils quand même.