IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

depuis php je peut seulement lire ma base de données mais pas écrire


Sujet :

PostgreSQL

  1. #1
    cedrix57
    Invité(e)
    Par défaut depuis php je peut seulement lire ma base de données mais pas écrire
    Bonjour,

    Je viens de ressortir un vieux site web que j'avais développé il y a 3 ans dans le cadre d'un projet scolaire. Mon objectif est de le faire tourner sur une machine virtuelle linux car je formate souvent mes ordinateurs et c'est un bon moyen de pouvoir le faire tourner facilement sans passer du temps à tout réinstaller.
    Il a été développé en html/css/php/postgresql

    Alors voici ce que j'ai fais. J'ai installer un ubuntu 12.04. J'ai installé lappstack. J'ai démarré apache et postgresql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ~/lappstack-5.3.15-0/ctlscript.sh start apache
    ~/lappstack-5.3.15-0/ctlscript.sh start postgresql
    J'ai été sur 127.0.0.1:8080 et ça fonctionne. J'ai mis mon site web dans ~/lappstack-5.3.15-0/apache2/htdocs.
    Ensuite j'ai créé une base de données et je l'ai contrôlé: elle a l'air d'être bonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cd ~/lappstack-5.3.15-0/postgresql/bin
    ./createuser -P cedrix
    ./createdb cedrix_bd01 --username cedrix
    ./psql cedrix_bd01 --username cedrix < ~/Documents/GIS3_sources_projetBD_cedricBettinger/createDB.sql 
    ./psql cedrix_bd01 --username cedrix
    \d
    J'ai été dans 127.0.0.1:8080/phpPgAdmin mais quand je tente de me connecter au serveur posgresql avec le pseudo indiqué 'administrator' j'ai un 'login error'. Bref je me suis dit que je vais me passer de phpPgAdmin.

    J'ai ensuite lancé mon site web:
    127.0.0.1:8080/GIS3_sources_projetBD_cedricBettinger
    Pendant un moment j'ai cru que ça allé marcher. Car j'ai été dans une page pour ajouter un employé. Cette page charge des données dans la base de données et ça a marché. Voici un extrait du code php de chargement dans la base de données qui fonctionne:

    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
    22
    <tr>
                                <td><label id="idequipe for="idequipe">Équipe</label></td> 
                                <td> <select name="idequipe" ">
                                    <?php //On va propose toutes les équipes présentes dans notre base de données dans une liste déroulante
                                    $connect = pg_connect("host=postgresql.alwaysdata.com user=cedrix password=xxxxxx dbname=cedrix_bd01");
                                    if(!$connect){
                                        echo "Impossible de se connecter à la base de données\n";
                                        exit;
                                    }
                                    $requet = "SELECT * FROM Equipe";
                                    if($result = pg_query($requet)){
                                        while($ligne = pg_fetch_array($result)){
                                            $idequipe = $ligne['idequipe'];
                                            $nomequipe = $ligne['nomequipe'];
                                            echo "<option value=$idequipe>$nomequipe</option>";
                                        }
                                    }
                                    ?>                            
     
                                     </select>
                                </td>
                            </tr>
    Par contre mon code qui écrit dans la base de données plante à tout les coups alors qu'avec le programme psql mes requêtes fonctionnent:
    
    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
    <?php 
    $nomequipe = pg_escape_string(htmlspecialchars($_POST["nomequipe"]));
    $connect = pg_connect("host=postgresql.alwaysdata.com user=cedrix password=xxxxxx dbname=cedrix_bd01");
    if(!$connect){
        echo "Impossible de se connecter à la base de données\n";
        exit;
    }
    $requet = "INSERT INTO Equipe(nomequipe, idemployechef)
                VALUES ('$nomequipe', NULL)";
    if(pg_query($requet)){
        echo "L'équipe $nomequipe a été ajouté";
    }else{
        echo "ERREUR : L'équipe $nomequipe n'a pu être ajouté";
    }
    ?>
    Quelqu'un sait d'où pourrait venir le problème?

    Merci d'avance
    Dernière modification par estofilo ; 17/08/2012 à 11h37. Motif: suppr. mot de passe

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Où est-ce que ça plante ..?
    Quel est le msg d'erreur ..?

    etc

  3. #3
    cedrix57
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IF(pg_query($requet)){
        echo "L'équipe $nomequipe a été ajouté";
    }else{
        echo "ERREUR : L'équipe $nomequipe n'a pu être ajouté";
    }
    C'est le pg_query qui plante. Du coup je rentre dans le else et obtient ce message:
    "L'équipe Test n'a pu être ajouté"
    Dès qu'il y a un insert il plante. Par conter je peux faire des SELECT et lire ma base de données. Je sait pas trop comment voire un éventuel message d'erreur?

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Quel est le msg d'erreur réel ?

    avec le SQL code + texte lié à l'erreur

    (rajouter la syntaxe de création de votre table Equipe pendant que vous y êtes)

Discussions similaires

  1. Peut-on récuperer une base de données avec seulement le fichier mdf
    Par devvanjier dans le forum Développement
    Réponses: 8
    Dernier message: 19/03/2012, 11h06
  2. Lire une base de données access 2007 avec access 2003
    Par gblanchard dans le forum Runtime
    Réponses: 6
    Dernier message: 08/05/2007, 02h59
  3. peut on créer une base de données pour image?
    Par adamalbert dans le forum Access
    Réponses: 3
    Dernier message: 26/05/2006, 16h10
  4. Peut on lier une base de donnée Mysql avec MS Project
    Par casper24 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/04/2006, 22h21
  5. Peut-on manipuler une base de donnée oracle sans oracle
    Par sillycoder dans le forum Oracle
    Réponses: 8
    Dernier message: 19/01/2006, 09h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo