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 :

transmettre la variable de connexion PDO [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut transmettre la variable de connexion PDO
    Bonsoir,

    dans une fonction, j'effectue la connexion PDO ce qui génère un objet PDO $bdd, puis j'appelle des fonctions qui doivent travailler sur la même base de données. Pour faire la transmission de $bdd, mon idée était de convertir la variable $bdd via serialize ($bddstring=serialize($bdd);) puis de transmettre cette variable par URL (add-event.php?bdd=<?php echo $bddstring;?>) mais pas le droit :
    You cannot serialize or unserialize PDO instances' in C:\wamp\www\cal\admin\index.php on line 11
    comment peut-on faire ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi tu ne refais pas simplement la connexion dans la page de destination ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Effectivement je le ferai demain et une fois au point, résolu

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pourquoi tu ne refais pas simplement la connexion dans la page de destination ?
    Je rajouterais : "COMME TOUT LE MONDE" !

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    La raison de ma méthode était : pourquoi faire simple si on peut faire compliqué ?

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Je rouvre cette discussion car je tombe sur une difficulté : je souhaite faire comme tout le monde donc faire la connexion dans chaque fichier qui en a besoin. Le code de la connexion est fait dans un fichier et j'inclus ce fichier partout où j'ai besoin de me connecter. Mais dans ce fichier de connexion, il y a un aussi include et donc si je souhaite mettre une connexion dans des fichiers pas au même niveau dans l'arborescence, cet include n'est pas toujours bon.

    Voici le code de la connexion :

    connect_MySQL.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php 
    if(empty($bdd)){
    	include_once ('includes/class_MyPdo.php');
    }
    //// connexion
    try{
    				$bdd = new MyPdo("vercors");
      }
    catch(PDOException $e){
    				echo "argggggggggggggg".$e->getMessage();
    				return(FALSE);
    			}			
    ?>

    class_MyPdo.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
    error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE);
    ini_set('display_errors','1'); 
     
    // MyPDO
     // ls : la classe MyPdo hérite de la classe PDO (extends)
    class MyPdo extends PDO {
     
    	protected $DB_NAME;
     
    	protected $HOST = "localhost:3306";
     
    	protected $USER ="----";
     
    	protected $PASS ="----";
     
     
     
    // ls : le constructeur de MyPdo appelle le constructeur de PDO en lui passant ses paramètres	
    	function __construct($db_name) {	
    	/* ls : la variable $pdo_options, ça date de ma formation de 2012 */ 
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;//important sur les configs récentes
    	$pdo_options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_OBJ;//pour le mode objet
    	$pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";//pour l'utf-8
     
    	$this->DB_NAME = $db_name;
    	parent::__construct('mysql:host=' . $this->HOST . ';dbname=' . $this->DB_NAME,$this->USER,$this->PASS,$pdo_options);
     
    	}
     
    }
    ?>

    Je fais la connexion avec include_once "./includes/connect_mysql.php"; (dans un fichier à la racine alors que MySQL_connect se trouve dans le répertoire includes. mais si je dois faire aussi une connexion dans un autre fichier qui se trouve aussi dans le répertoire includes, j'inclue connect_mysql.php par include_once "connect_mysql.php"; mais l'include de la ligne 3 de connect_mysql.php n'est plus bon, donc comment faut-il faire ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    • __DIR__
    • dirname(__DIR__)

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

Discussions similaires

  1. Transmettre variables de connexion aux différents job
    Par semsima dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 25/04/2012, 11h23
  2. Transmettre une variable ?
    Par K20 dans le forum Langage
    Réponses: 10
    Dernier message: 01/01/2006, 22h55
  3. comment transmettre 1 variable de formulaire a 2 page cible
    Par NoobX dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/03/2005, 15h29
  4. Transmettre une variable via un lien href
    Par developpeur_mehdi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 08/01/2005, 14h49
  5. Réponses: 12
    Dernier message: 23/06/2004, 13h50

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