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

PHP & Base de données Discussion :

PDO/MYSQLI et connexion persistante ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Points : 225
    Points
    225
    Par défaut PDO/MYSQLI et connexion persistante ?
    Bonjour,

    Sauf erreur de ma part lorsque que l'on exécute un script PHP ce dernier est exécuté sur le serveur.

    Mon problème est le suivant, afin de limité les création connexion à ma bdd mysql.

    je souhaiterais exécuter une seule fois cette connexion, et ensuite faire mes insert update, select etc....

    La raison en est simple, j'utilise un petit script simple pour faire des mises a jour d'une bdd, mais ces maj ce font les un après les autres., impossible pour moi de faire, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    insert matable(field1,field2,field3.....) 
    values(value1,value2,value3....),
    values(value11,value2,value3....),
    values(value111,value2,value3....),
    .......,
    values(value1,value2,value3....);
    vous avez compris l'idée
    l'accès à ma base de données (connexion est rapide), la mise a jour des tables encore plus (~0.01 sec).

    Cependant je souhaiterais être encore plus rapide en évitant à chaque fois de créer la connexion à la base de données( objectif du programme : plus de 500 connexions en simultanées par 1/2 heure voir plus (je préfère exagérer pour ne pas être surpris ).

    En effet à chaque fois que je fais un update, insert, delete...
    je fais les choses suivantes:
    1 création de mon objet mysqli (autocommit= yes)
    2 connexion à ma base de données
    3 lecture/update/insert/delete
    4 fermeture de la connexion
    5 destruction objet mysqli


    en résumé,
    - est il possible de sauvegarder dans une session (j'ai essayé mais pas réussi) l'objet mysqli,pour ensuite qu'il soit utiliser lors des prochaines mise a jour
    - Si oui pouvez vous m'aiguiller
    - si non que me conseillez vous de faire.

    je prècise que la base de données à été optimisé,(index, clé, choix des index) et par conséquent letemps à gagné est sur la connexion

    je vous remercie de votre aide et conseils
    cordialement

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour,

    tu peux le faire avec une connexion persistante à la bd.en effet la connexion persistante est mise en cache à la fin de l'exécution d'un script pour être réutilisé lorsqu'un autre script en fait la demande.

    doc php:
    connexion persistante

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Points : 225
    Points
    225
    Par défaut
    je vous remercie bcp de votre réponse, cela semble répondre à mon besoin.

    je ne manquerais de vous informer du résultat

    bien cordialement

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Points : 225
    Points
    225
    Par défaut PDO connexion persistante
    Je viens de faire un petit test depuis mon localhost, et pour le moment la connexion et les select semble marcher correctement .

    cependant pouvez-vous me confirmer certains points:

    En effet j'ai lu le lien suivant :connexion persistante
    et il semble y avoir quelques restrictions, si vous avez une expérience dans ce domaine (PDO) pouvez-vous me donner un retour.

    si j'ai bien tout compris la connexion persistante fonctionne de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $VALEUR_hote='localhost';
    $VALEUR_port='port';
    $VALEUR_nom_bd='nom_de_la_BDD';
    $VALEUR_user='root';
    $VALEUR_mot_de_passe='mot_de_passe';
    $connexion = new PDO('mysql:host='.$VALEUR_hote.';port='.$VALEUR_port.';dbname='.$VALEUR_nom_bd, $VALEUR_user, $VALEUR_mot_de_passe);
     
    $connexion->exec("INSERT INTO membres(champ_login,champ_mdp) VALUES('login','mot_de_passe')");
    ?>
    En suite à chaque fois que je relance ce script depuis une machine, PHP (ou qui sais-je encore, vérifie si une instance de la connexion sur la bdd existe si tel est le cas il ne la recréer pas et utilise ladite connexion si elle n'existe pas alors il la créer.

    en revanche je dois vérifier le nombre limite de connexion, les verrous, mais là chaque problème en son temps je verrais plus tard

    Pour être précis sur le sujet,voila réellement ce que je compte réaliser.
    via une machine (pc/pda/smartphone/tablette etc..) j'accèdes à une base de données, ces accès peuvent être nombreux et par fois fait depuis plusieurs machines (pc/pda/smartphone/tablette etc..).

    Comme il peut y à voir plusieurs accès depuis une même machine entre 300 insert ou update voir plus) et cela dans un cours laps de temps (~ 10 a 15 minutes) , je trouve que le temps de réponse des script php (existant dans mon produit) sont assez long (temps mesuré ~ 0.12 sec par insert) c'est cours mais pour mon produit et le domaine fonctionnel c'est trop long et surtout il arrive de temps en temps que la connexion prenne vraiment bcp de temps

    J'attire votre attention sur le fait que l'essentiel du temps est sur la connexion à la base de données, et c'est pour cette raison que je souhaite faire une seule connexion (tout au début du traitement quit à la relancer toutes les X minutes) et ensuite rè-utiliser ladite connexion créés au début pour faire les select/insert/update.....

    En résumé aujourd'hui j'ai :
    0-Ouverture de l'outil
    1-traitement fonctionnel
    2 création de mon objet mysqli (autocommit= yes)
    3 connexion à ma base de données (avec un seul nom utilisateur pour toutes les connexions)
    4 lecture/update/insert/delete
    5 fermeture de la connexion
    6 destruction objet mysqli
    7-fin traitement fonctionnel

    et je recommence le traitement ci-dessus (de 1 à 7) jusqu'à la fin de la tache.
    je voudrais à la fin que le traitement soit le suivant :

    0-Ouverture de l'outil
    1 connexion à ma base de données (avec un seul nom utilisateur pour toutes les connexions - PDO)
    2-traitement fonctionnel
    3 connexion à ma base de données
    4 lecture/update/insert/delete
    5-fin traitement fonctionnel

    et je recommence le traitement ci-dessus (de 2 à 5) jusqu'à la fin de la tache.

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

Discussions similaires

  1. [PDO] [PHP 5.3] Problème de connexion persistante avec PDO
    Par Benjamin Delespierre dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/03/2012, 14h24
  2. [MySQL] mysqli & connexion persistante
    Par stc074 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/06/2009, 19h49
  3. [MySQL] [connexion persistante]MySQLi le propose t il en natif?
    Par hansaplast dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/08/2006, 14h44
  4. MySQLi : connexions persistantes?
    Par Gruik dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/05/2006, 21h35
  5. [MySQL] Mysqli et connexions persistantes
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/03/2006, 13h04

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