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 :

Projet images en POO PDO MYSQL [MySQL]


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
    Dépanneur informatique
    Inscrit en
    Septembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Dépanneur informatique

    Informations forums :
    Inscription : Septembre 2021
    Messages : 31
    Par défaut Projet images en POO PDO MYSQL
    Bonsoir, J'ai une erreur de ce type lors d'un enregistrement dans une BDD => Remarque : tentative d'accès au décalage du tableau sur la valeur de type bool dans C:\wamp64\www\projet-images\class\imageManager.php à la ligne 85, 86, 87, 88

    Voici mon code :

    class/imageManager.php

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
     
    <?php
     
    class imageManager {
     
        private $db;
     
        public function __construct($db) {
     
            $this->setDb($db);
        }
     
        public function setDb(PDO $dbh) {
     
            return $this->db = $dbh;
        }
     
        public function addImage(Image $image) {
     
            try {
     
                $sql = 'INSERT INTO images(title, descr, filename) VALUES(:title, :descr, :filename)';
     
                $stmnt = $this->db->prepare($sql);
     
                $title = htmlspecialchars($image->getTitle());
                $descr = htmlspecialchars($image->getDescr());
                $filename = htmlspecialchars($image->getFilename());
     
                $stmnt->bindParam(':title', $title);
                $stmnt->bindParam(':descr', $descr);
                $stmnt->bindParam(':filename', $filename);
     
                $stmnt->execute();
            }
            catch(PDOException $e) {
     
                echo 'Erreur de requête ' . $e->getMessage();
            }
        }
     
        public function getImages($image_dir) {
     
            $i = 0;
     
            if($handle = opendir($image_dir)) {
     
                while(false !== ($entry = readdir($handle))) { 
     
                    if($entry != "." && $entry != "..") {
     
                        $i++;
     
                        $images[$i]['filename'] = $entry;
     
                        $image_data = $this->getImageData($entry);
     
                        $images[$i]['title'] = $image_data['title'];
                        $images[$i]['descr'] = $image_data['descr'];
                    }
                }
            }
     
            closedir($handle); 
     
            return $images; 
        }
     
        public function getImageData($filename) {
     
            try {
     
                $sql = 'SELECT id, title, descr, filename FROM images WHERE filename = :filename';
     
                $stmnt = $this->db->prepare($sql);
     
                $stmnt->execute(array(
     
                    ':filename' => $filename
                ));
     
                $row = $stmnt->fetch();
     
                $image_data['id'] = $row['id'];
                $image_data['title'] = $row['title'];
                $image_data['descr'] = $row['descr'];
                $image_data['filename'] = $row['filename'];
     
                return $image_data;
            }
            catch(PDOException $e) {
     
                echo 'Erreur de requête ' . $e->getMessage();
            }
        }
    }
    Merci d'avance.

  2. #2
    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,

    Cette remarque a apparu parce que tu essaies d'utiliser le tableau $image_data dans la 2éme méthode, alors qu'il est déjà initialisé dans la boucle de la première méthode, ou bien le retour de la requête est false $row=false puisque tu reçois valeur de type bool dans le message d'erreur.

    Tu n'as qu'à remplacer $image_data des lignes 57,59,60 par un autre nom et faire un var_dump($row) pour voir le contenu s'il est vide ou pas.

  3. #3
    Membre averti
    Homme Profil pro
    Dépanneur informatique
    Inscrit en
    Septembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Dépanneur informatique

    Informations forums :
    Inscription : Septembre 2021
    Messages : 31
    Par défaut
    Merci bien, bon week-end

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

Discussions similaires

  1. Projet Image
    Par rad_hass dans le forum OpenGL
    Réponses: 37
    Dernier message: 13/03/2006, 14h34
  2. [POO] PDO et fetch_INTO
    Par jeff_! dans le forum Langage
    Réponses: 6
    Dernier message: 25/01/2006, 14h22
  3. Gestion d'images avec DELPHI et Mysql?
    Par sessime dans le forum Bases de données
    Réponses: 4
    Dernier message: 22/11/2005, 11h27
  4. Projet C++, Webcam, USB et MySQL
    Par Cooly dans le forum C++
    Réponses: 4
    Dernier message: 19/12/2004, 23h40
  5. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/07/2003, 16h18

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