besoin d'explications pour PHP/PGSQL

besoin d'explications pour PHP/PGSQL - PHP - Programmation

Marsh Posté le 05-09-2007 à 14:07:34    

Bonjour et merci à tous ceux qui lisent ce message!
 
Alors voilà, j'aimerais bien terminer mon boulot avant la rentrée, c'est pourquoi j'ai besoin de votre aide :pt1cable:  
Je dois programmer une mise à jour d'une BDD à partir d'un fichier CSV.
J'ai besoin d'explications sur 2 points : d'abord, j'aimerais savoir si vous connaissez l'équivalent PHP de la structure  
try{...}
catch{...}
pour pouvoir gérer les transactions afin de pas faire des moitiés de mises à jour.
 
Ensuite, j'aimerais savoir si quelqu'un d'autre que moi dans le monde a déjà utilisé la fonction pg_query_params
j'aimerais transformer ma requête
 
$requete = "SELECT classe_mere FROM import WHERE nom = '".$class."' AND nature = 'class'";
$resultat = pg_query($link, $requete);
 
pour me protéger contre les injections SQL via pg_query_params (j'ai reçu l'interdiction d'utiliser toute autre fonction  :pfff: )


Message édité par liquidcloud le 05-09-2007 à 14:35:30
Reply

Marsh Posté le 05-09-2007 à 14:07:34   

Reply

Marsh Posté le 05-09-2007 à 14:22:27    

Bonjour,
 
Les exceptions en php5 : http://www.asp-php.net/tutorial/as [...] s-php5.php
 
pg_query_params marche comme pg_query() sauf que tu peux passer tes arguments ailleurs que en dur dans la requête. Ca limite les risques de passer une requête en argument pour cracker le site.
http://fr.php.net/manual/fr/functi [...] params.php
 
vw

Reply

Marsh Posté le 05-09-2007 à 14:29:30    

Merci beaucoup d'avoir répondu à ma première question
 
je sais probablement pas utiliser pg_query_params, mais quand je transforme ma requête en  
 
$requete = "SELECT classe_mere FROM import WHERE nom = '$1' AND nature = 'class'";
$resultat = pg_query_params($link, $requete, array($class));
$mere = pg_fetch_result($resultat,0,0);
 
contrairement à la requete en dur, $mere ne contient rien.  :sweat:  
enfin je m'arrache les cheveux dessus depuis bientôt une semaine, alors si quelqu'un pouvait m'aider en montrant un exemple où on récupère les données d'un pg_query_params, ça m'aiderait, car je suis quasiment sûr que ma requête paramétrée est correcte  :fou:


Message édité par liquidcloud le 05-09-2007 à 14:46:57
Reply

Marsh Posté le 05-09-2007 à 15:09:39    

T'es sur qu'il faut les ' autour du $1 ? Vérifie si pgsql n'a pas retourné de message d'erreur ( pg_last_error et fonctions associé) pour savoir s'il ne trouve pas d'erreur dans la requête qu'il reçoit.

Reply

Marsh Posté le 05-09-2007 à 15:24:07    

omega2 a écrit :

T'es sur qu'il faut les ' autour du $1 ?


Quand j'ai lu ce message, je me suis d'abord mis en colère en me demandant si tu me prenais pour un idiot, en pensant avoir déjà essayé... Mais en fait c'est ça!!!!!!! A force de supprimer et d'ajouter des bouts de code, j'avais essayé de retirer les apostrophes, mais j'avais dû causer un bug ailleurs...
 
Merci beaucoup Omega2  :love:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed