Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Invité régulier
    Homme Profil pro
    etudiant en BTS SIO
    Inscrit en
    juin 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : etudiant en BTS SIO

    Informations forums :
    Inscription : juin 2012
    Messages : 20
    Points : 8
    Points
    8

    Par défaut probleme insert into dans phppgadmin

    Bonjour, j'ai un soucis avec phppgadmin sur nerim.
    j'ai codé un script tout bête pour insérer des données dans une bdd en traitant un fichier .txt.
    Je l'ai testé en local sur Mysql et ça fonctionne super bien, l'insertion se fait. Cependant des que je lance le script pour faire l'insertion a ma bdd sur postgresql, rien ne se fait et pourtant je n'ai aucune erreur de détecté... J'ai bien les bon id, le bon serveur bref impossible de savoir quel est l'erreur. J'ai bien entendu effectué pleins de tests pour vérifier la connexion, ainsi que l’exécution de la requête avec succès. Ma requête est bien sur correcte puisque j'ai réussi a l’exécuter en local sur MySql.
    Voila, donc impossible de savoir pourquoi ça ne fonctionne pas :/

    Je vous met le code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
     
    $fichier = 'contact.txt'; 
    $contenu_array = file($fichier);
    $connexion = mysql_connect( "...sql.nerim.net", "", "" ) ;
    $db  = mysql_select_db( "mycompany" ) ;
     
    foreach($contenu_array as $element)
    {
        $data = explode("|", $element);
    	$id=count($element);
    	$sql_insert = ("INSERT INTO fiche_client (id_client, date_entree) VALUES (default,'".$data[1]."');");
    	mysql_query($sql_insert, $connexion);
    }
    mysql_close($connexion);
     
    ?>
    Ne vous étonnez pas des parties vides dans le champs de connexion, c'est normal, je dois garder ça secret, je suis en stage.

    Je suis un grand débutant dans ce domaine et j'ai vraiment besoin d'aide.
    Merci d'avance

  2. #2
    Expert Confirmé
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 832
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 832
    Points : 2 768
    Points
    2 768

    Par défaut

    Le bout de code montré appelle des fonctions mysql_* qui ne fonctionnent qu'avec un serveur mysql.

    Pour que le même code PHP fonctionne à la fois avec postgres et mysql il faudrait plutôt utiliser PDO.

  3. #3
    Invité régulier
    Homme Profil pro
    etudiant en BTS SIO
    Inscrit en
    juin 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : etudiant en BTS SIO

    Informations forums :
    Inscription : juin 2012
    Messages : 20
    Points : 8
    Points
    8

    Par défaut

    Citation Envoyé par estofilo Voir le message
    Pour que le même code PHP fonctionne à la fois avec postgres et mysql il faudrait plutôt utiliser PDO.
    J'avou xD j'y ai même pas pensé, mais je sais pas trop bien m'en servir.
    Merci en tt cas.

    EDIT: ça fonctionne pas, je dois m'en passer car je crois qu'il faut installer des drivers pour utiliser PDO il me semble, d'autant plus que je ne suis pas admin du serveur.
    Pour info j'utilise pgsql sur un serveur Nerim.
    Bref je suis bloqué et j'arrive pas à me servir des fonctions de pgsql du style pg_connect() ou autre... Bref, si quelqu'un peut juste remplacer mes fonctions dans mon script par les bonnes ça m'aiderais beaucoup.
    Merci d'avance

  4. #4
    Invité régulier
    Homme Profil pro
    etudiant en BTS SIO
    Inscrit en
    juin 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : etudiant en BTS SIO

    Informations forums :
    Inscription : juin 2012
    Messages : 20
    Points : 8
    Points
    8

    Par défaut

    Bon finalement j'ai réussi à changer les fonctions, j'ai un peu honte d'ailleurs car c'était vraiment bidon xD. Donc ça doit fonctionner...
    Eh ben non j'ai une belle erreur que voici:

    Code :
    Warning: pg_query(): supplied argument is not a valid PostgreSQL link resource in /filer/m/testsql.php on line 8

    je vous remet le bon script cette fois:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    $fichier = 'contact.txt'; 
    $contenu_array = file($fichier);
    $connexion = pg_connect( "host=mycompany.sql.nerim.net port=5432 dbname=mycompany user=xxxxxx password=xxxxx" )or die("Connexion impossible");
    echo 'Connexion réussie';
    $sql_insert = ("INSERT INTO fiche_client (id_client, date_entree) VALUES (default,'".$data[1]."');");
    	pg_query($sql_insert, $connexion);
     
    pg_close($connexion);
     
    ?>
    Merci pour votre aide et bonne année 2013

  5. #5
    Expert Confirmé Sénior
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : mai 2002
    Messages : 3 107
    Points : 5 142
    Points
    5 142

    Par défaut

    Bonjour,

    Commencez par lire la doc de pg_query et vous trouverez assez rapidement.

  6. #6
    Invité régulier
    Homme Profil pro
    etudiant en BTS SIO
    Inscrit en
    juin 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : etudiant en BTS SIO

    Informations forums :
    Inscription : juin 2012
    Messages : 20
    Points : 8
    Points
    8

    Par défaut

    Citation Envoyé par punkoff Voir le message
    Bonjour,

    Commencez par lire la doc de pg_query et vous trouverez assez rapidement.
    Salut punkoff, merci de ta réponse. C'est ce que j'ai fais c'est pour cela que j'utilise pg_query ou pg_exec. Par contre j'ai oublié de préciser un truk, j'ai fais des recherches sur mon erreur. Et sur un autre forum la personne disais que c'est un problème de droits.
    Sachant que je suis pas admin je crois bien que c'est foutu :s

  7. #7
    Expert Confirmé Sénior
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : mai 2002
    Messages : 3 107
    Points : 5 142
    Points
    5 142

    Par défaut

    nan,

    vous avez juste inversé les paramétrés d'entrée de la méthode.
    +

  8. #8
    Invité régulier
    Homme Profil pro
    etudiant en BTS SIO
    Inscrit en
    juin 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : etudiant en BTS SIO

    Informations forums :
    Inscription : juin 2012
    Messages : 20
    Points : 8
    Points
    8

    Par défaut

    Haha oui exact dsl d’ailleurs je l'ai vu direct en plus et corrigé rapidement mais j'ai oublié d'éditer mon message :s
    Bref j'ai encore eu une autre erreur concernant le type de données de ma table id étant également ma clef primaire. Lors du create j'avais pourtant mis serial mais c'est un integer que je dois utiliser ce qui m'étonne un peu, j’avoue ne pas bien comprendre... Bref, au moins c'est bon ça marche niquel la.
    Merci à vous

  9. #9
    Expert Confirmé Sénior
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : mai 2002
    Messages : 3 107
    Points : 5 142
    Points
    5 142

    Par défaut

    Comme d'hab la doc (google : postgresql serial) :
    http://www.postgresql.org/docs/8.1/s...ATATYPE-SERIAL

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •