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 :

Connexion PHP objet / MySQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut Connexion PHP objet / MySQL
    Bonjour j'aimerais connaître la meilleur manière de me connecter à ma base de données en php objet...

    Faut-il que je crée une classe basededonnees avec les fonctions de connections dedans ou pas ??

    Est-ce que cela vous paraît bien ??

    Code : 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
    <?php
        class basededonnees {
    		var $bdd;
    		var $res;
    		var $erreur;
     
    		// connexion a la bdd
    		function connexion($serveur, $login, $motpasse) {
    			$this->bdd = mysql_connect($serveur, $login, $motpasse)
    			or $this->erreur = 'Impossible de se connecter à la base de données';
    			// $this permet de désigner le nom de l'objet dans lequel on se trouve, autrement dit la classe courante
    			$this->selectionneBdd($base);
    		}
     
    		// selection de la bdd
    		function selectionneBdd($base) {
    			if($this->bdd)
    			{
    				mysql_select_db($base, $this->bdd)
    				or $this->erreur = mysql_error($this->bdd);
    			}
    		}
        }

  2. #2
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    Salut,

    La meilleur solution c'est d'utiliser PDO, faut pas réinventer la roue !
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    Alors j'ai copié dans mon php.ini
    extension=php_pdo.dll
    extension=php_pdo_firebird.dll
    extension=php_pdo_informix.dll
    extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_oci.dll
    extension=php_pdo_oci8.dll
    extension=php_pdo_odbc.dll
    extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll
    Et j'ai voulu coché l'extansion php_pdo_mssql, puisque c'est celle-ci qui doit m'intéresser je suppose...
    Le hic c'est que maintenant, je ne peux même plus ouvrir wampserver2...



    Edit: finalement, j'ai mis que les 3 suivants dans php.ini:
    extension=php_pdo.dll
    extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    Mais après j'ai pas vraiment compris comment je vais pouvoir me connecter à ma base de données

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    Donc je continue mon avancé en installant MySQL/ODBC Connector

    Et je test pour voir si je peux me connecter, après avoir mis en place mon lien entre ODBC et ma BDD (qui marche apparemment, vu qu'il me le trouve ^^)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    /* Connexion à une base de données ODBC en utilisant un alias */
    $dsn = 'cinema';
    $user = 'root';
    $password = '';
     
    try {
      $dbh = new PDO($dsn, $user, $password);
    } catch (PDOException $e) {
      echo 'Echec de la connexion : ' . $e->getMessage();
    }
     
    ?>
    Qui me donne :

    Echec de la connexion : invalid data source name
    Et j'aimerais comprendre pourquoi et où est mon erreur... si quelqu'un peut m'aider... merci


    Dans le cours : cette ligne aussi apparaît :
    [PDO]pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
    Elle doit servir à quelque chose ??

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    J'avance... du moins j'essaie

    Code : 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
    <?php
    /* Connexion à une base de données ODBC en utilisant un alias */
    $dsn = 'mysql:dbname=cinema;host=localhost';
    $user = 'root';
    $password = '';
     
    try {
      $dbh = new PDO($dsn, $user, $password);
    } 
     
    catch (PDOException $e) {
      echo 'Echec de la connexion : ' . $e->getMessage();
    }
     
     
    $nom = mysql_query("select nomActeur from acteur where codeActeur=1");
    echo $nom;
     
    ?>
    Le résultat n'est pas celui que je souhaiterais

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Test\index.php on line 20

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\Test\index.php on line 20

    J'ai lu également ça, sur la page gentiment transmise par Yoteco précédemment :

    PDO::MYSQL_ATTR_INIT_COMMAND (entier)

    Commande à exécuter lors de la connexion au serveur MySQL. Sera automatiquement ré-exécuté lors d'une reconnexion.


    PDO::MYSQL_ATTR_DIRECT_QUERY (entier)

    Effectue des requêtes directes, sans utiliser de requêtes préparées.

    J'aimerais savoir si je dois les utiliser et comment je dois le faire si tel est le cas.

    Merci d'avance de vos réponses

Discussions similaires

  1. [MySQL] probleme de connexion php et mysql
    Par kanebody dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/07/2009, 14h41
  2. [MySQL] probleme de connexion php et mysql
    Par algenerale dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/06/2009, 07h56
  3. [MySQL] connexion php et mysql
    Par algenerale dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 24/04/2009, 18h41
  4. [MySQL] Connexion PHP et MySQL pour des listes
    Par TSniper dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/04/2009, 00h43
  5. [Wamp] Connexion PHP et MySQL avec include
    Par Ni4k dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 10/07/2007, 19h55

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