Précédent   Forum du club des développeurs et IT Pro > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/12/2012, 11h55   #1
nico9275
Invité régulier
 
Homme
etudiant en BTS SIO
Inscription : 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 : 7
Points : 7
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
nico9275 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 17h02   #2
estofilo
Modérateur
 
Inscription : octobre 2008
Messages : 1 702
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 702
Points : 2 347
Points : 2 347
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.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/01/2013, 10h13   #3
nico9275
Invité régulier
 
Homme
etudiant en BTS SIO
Inscription : 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 : 7
Points : 7
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
nico9275 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 15h49   #4
nico9275
Invité régulier
 
Homme
etudiant en BTS SIO
Inscription : 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 : 7
Points : 7
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
nico9275 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 15h56   #5
punkoff
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 2 158
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 2 158
Points : 3 491
Points : 3 491
Bonjour,

Commencez par lire la doc de pg_query et vous trouverez assez rapidement.
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 16h12   #6
nico9275
Invité régulier
 
Homme
etudiant en BTS SIO
Inscription : 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 : 7
Points : 7
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
nico9275 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 18h09   #7
punkoff
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 2 158
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 2 158
Points : 3 491
Points : 3 491
nan,

vous avez juste inversé les paramétrés d'entrée de la méthode.
+
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 09h52   #8
nico9275
Invité régulier
 
Homme
etudiant en BTS SIO
Inscription : 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 : 7
Points : 7
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
nico9275 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 11h40   #9
punkoff
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 2 158
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 2 158
Points : 3 491
Points : 3 491
Comme d'hab la doc (google : postgresql serial) :
http://www.postgresql.org/docs/8.1/s...ATATYPE-SERIAL
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h48.


 
 
 
 
Partenaires

Hébergement Web