Meilleure pratique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Meilleure pratique

Re: Meilleure pratique

par BGMaxime » 06 mars 2013, 14:58

bon, je viens de tester en envoyant la variable de connexion ($mysqli) en paramètre dans la fonction.

le pragmatisme a payé, ça fonctionne.

Et dans le code c'est plus simple et plus joli :-)

Merci de vos différentes réponses.

Maxime

Re: Meilleure pratique

par xTG » 06 mars 2013, 14:32

Merci de ta réponse

je ne risque pas de perdre une partie du contexte ?

La connexion ne dépend elle pas de là où j'en suis dans ma requête ?

Si j'ai déjà lu 25 enregistrements, que je vais faire une autre requête dans la fonction, lorsque je reviens, vais je me repositionner sur le 26 ème enregistrement ?

En d'autres termes, cela influe-t-il sur un éventuel déplacement de curseurs ?

A+
Ne pas confondre connexion et resultSet. :)
La connexion est la route jusqu'à ta base de données.
Le resultSet est un camion l'empruntant parmi d'autres.
Et tes enregistrements sont le contenu du camion.

Sachant que lorsque tu fais une requête de type SELECT tu exportes les résultats de ta table dans une zone temporaire.
Donc si tu fais un SELECT puis que tu parcours x résultats, puis que tu insères un nouvel enregistrement (ou que tu fais une mise à jour) et que tu reviens à ton parcours : tu ne trouveras pas ce nouvel enregistrement sans devoir refaire un SELECT.

Re: Meilleure pratique

par sirakawa » 06 mars 2013, 14:02

Si j'ai bien vu, ça peut se faire avec une seule requête:
Update xxx set salaire=salaire*2 where id = $id
ou quelque chose de ce genre

Re: Meilleure pratique

par BGMaxime » 06 mars 2013, 12:52

Merci de ta réponse

je ne risque pas de perdre une partie du contexte ?

La connexion ne dépend elle pas de là où j'en suis dans ma requête ?

Si j'ai déjà lu 25 enregistrements, que je vais faire une autre requête dans la fonction, lorsque je reviens, vais je me repositionner sur le 26 ème enregistrement ?

En d'autres termes, cela influe-t-il sur un éventuel déplacement de curseurs ?

A+

Re: Meilleure pratique

par xTG » 06 mars 2013, 12:34

Il vaudrait mieux ouvrir une connexion et passer cette connexion en paramètre de ta fonction ($connexion_principale).

Meilleure pratique

par BGMaxime » 06 mars 2013, 12:32

Bonjour,

j'ai une question sur la meilleure pratique à utiliser sur un bout de programme que je suis en train d'écrire:

pseudo code
connexion à la table USER de la base TEST
tant qu'il y a des enregistrements
-->fonction chercher_une_valeur(USER_ID)
Fin

Définition de la fonction chercher_une_valeur(USER_ID)
connexion à la base SALAIRE de la base TEST
chercher la valeur du salaire si le USER_ID est trouvé.
Si oK, Doubler le salaire :-)
Fin


Si je me connecte à la base dans le programme principal, avec
$connexion_principale = new mysqli($GLOBALS['myServer'], $GLOBALS['myUser'], $GLOBALS['myPassword'], $GLOBALS['myDatabase']);
je peux interroger la base avec
$resultat = $connexion_principale->query($marequete);

Je récupère mon USER_ID et je l'envoie dans la fonction.

Dans la fonction je me reconnecte à la base avec
$connexion_secondaire = new mysqli($GLOBALS['myServer'], $GLOBALS['myUser'], $GLOBALS['myPassword'], $GLOBALS['myDatabase']);
je peux modifier la base avec
$resultat2 = $connexion_secondaire->query($marequetesecondaire);

Du coup j'ai deux connexions différentes à la même base.

Est ce académique, conforme aux bonnes pratiques ?

Merci de votre aide.

Maxime

blueguitarmaxime.blogspot.fr/