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 :

Classe database sqlite


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juin 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juin 2020
    Messages : 25
    Par défaut Classe database sqlite
    Bonjour tout le monde,

    Je démarre le POO en PHP. Je cherche déjà à connecter la base de données en sql.

    J'ai ce code mais je pense que j'ai mal adapté.

    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
     
    namespace app;
     
    use PDO;
     
    class Database{
     
    	try
    	{
    		$DB = new PDO('sqlite:calibreDatabase.db');
    		$DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	}
    	catch (Exception $e)
    	{
    		die('Erreur : ' . $e->getMessage());
        }
     
    }

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Voici la doc PHP sur la POO à lire, tout y est détaillé : https://www.php.net/oop5

    Quand quelque chose ne va pas, donne le message d'erreur.

    La syntaxe de ta classe est invalide, tes instructions doivent être placées dans des méthodes.

    Ton try/catch ne devrait pas contenir de die(). En effet, par défaut une exception non rattrapée met fin au script, mais elle doit aussi pouvoir être rattrapée par l'utilisateur pour un traitement adéquat, ce que tu empêches.

    Si tu veux encapsuler PDO il existe plusieurs manières de faire.

    Par héritage, avec extends, MyDatabase va hériter de toutes les méthodes de PDO, et tu peux en ajouter d'autres si besoin :

    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
    class MyDatabase extends PDO
    {
        public function __construct()
        {
            parent::__construct('sqlite:calibreDatabase.db'); // On appelle le constructeur de l'objet PDO parent
            $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
        }
    }
     
    try {
        $db = new MyDatabase();
        $data = $db->query('...')->fetchAll();
        print_r($data);
    } catch (Exception $e) { // On laisse la possibilité à l'utilisateur de gérer l'exception comme il veut
        // Affichage de l'exception et sortie du script
        print_r($e);
        exit;
    }

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juin 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juin 2020
    Messages : 25
    Par défaut
    Merci beaucoup !
    Dans le code que tu m'as donné, $parent n'est pas reconnu ? VSC m'indique que c'est une erreur.

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Dans le code que tu m'as donné, $parent n'est pas reconnu ? VSC m'indique que c'est une erreur.
    Et sinon ça fonctionne ? Voir la config de VSC, je ne pourrai pas t'aider.

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 518
    Par défaut
    Bonjour,

    parent sans dollar, ceci indique que le constructeur doit hériter du constructeur parent PDO.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    parent sans dollar, ceci indique que le constructeur doit hériter du constructeur parent PDO.
    Oups en effet, je corrige la coquille. Merci !

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

Discussions similaires

  1. Erreur dataBase SQLite
    Par Nylwen dans le forum Android
    Réponses: 5
    Dernier message: 14/09/2012, 15h01
  2. Attach Database sqlite
    Par matini dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 20/01/2012, 10h18
  3. Réponses: 1
    Dernier message: 10/05/2011, 15h56
  4. [Debutant]JDBC MySQL Classe Database
    Par userB dans le forum JDBC
    Réponses: 2
    Dernier message: 04/02/2008, 17h54
  5. [MySQL] Classe database + connexion multiple + principe mal compris
    Par Rodrigue dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/08/2006, 14h06

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