Enregistrer des données vers MySQL
.
<?php  
    class School {  
        protected $_id;  
        protected $_name;  
        protected static $error;  
        const MESSAGE_ERROR_ID = 'ID doit être un entier.';  
        const MESSAGE_ERROR_TEXT = 'TEXT doit être une chaîne de caractères.';  
        const MESSAGE_ERROR_DATECREATION = 'DATE doit être au format YYYY-MM-DD.';  
        const MESSAGE_ERROR_TITLE = 'TITRE doit être une chaîne de caractères.';  
        const MESSAGE_ERROR_END = 'L\'objet ne peut pas être créé.';  
        public function __construct(array $schools) {  
            $this->setId($schools['id']);  
            $this->setName($schools['name']);  
            if(!empty(self::$error)) {  
                throw new Exception(self::$error . self::MESSAGE_ERROR_END);  
            }  
        }  
        public function setError($message) {  
            self::$error = $message;  
        }  
        public function getError() {  
            return self::$error;  
        }  
        public function setId($id) {  
            if((is_int($id)) AND ($id > 0)) {  
                $this->_id = $id;  
            }  
            else {  
                $this->setError(self::MESSAGE_ERROR_ID);  
            }  
        }  
        public function setName($name) {  
            if(is_string($name)) {  
                $this->_name = $name;  
            }  
            else {  
                $this->setError(self::MESSAGE_ERROR_TEXT);  
            }  
        }  
        public function getId() {  
            return $this->_id;  
        }  
        public function getName() {  
            return $this->_name;  
        }  
    }  
    ?> 
.
    <?php  
    class schoolManager {  
        private $_bdd;  
        public function __construct($bdd) {  
            $this->setDb($bdd);  
        }  
        public function setDb(PDO $db) {  
            $this->__bdd = $db;  
        }  
        public function addSchools(School $school) {  
            $query = 'INSERT INTO school (name) VALUES(:name)';  
            $stmnt = $this->__bdd->prepare($query);  
            $stmnt->execute([':name' => htmlspecialchars(($school)->getName())]);  
        }  
        public function getSchools($id = '') {  
            if(empty($id)) {  
                $query = 'SELECT id, name FROM school';  
                $stmnt = $this->__bdd->prepare($query);  
            }  
            elseif(is_numeric($id)) {  
                $query = 'SELECT id, name FROM school WHERE id = :id';  
                $stmnt = $this->__bdd->prepare($query);  
                $stmnt->bindParam(':id', $id);  
            }  
            $stmnt->execute();  
            while($row = $stmnt->fetch(PDO::FETCH_ASSOC)) {  
                $results[] = $row;  
            }  
            return $results;  
        }  
    }  
    ?> 
.
    <?php  
    require('class/School.php');  
    require('class/schoolManager.php');  
    try {  
        $bdd = new PDO('mysql:host=localhost;dbname=schools', '10111110', '10111110');  
    }  
    catch(Exception $e) {  
        'Erreur de connexion : ' . $e->getMessage();  
    }  
    $manager = new schoolManager($bdd);  
    $schools_data = array(  
        1 => array('id' => 1, 'name' => 'Ecole A'),  
        2 => array('id' => 2, 'name' => 'Ecole B'),  
        3 => array('id' => 3, 'name' => 'Ecole C')  
    );  
    $schools = new School($schools_data);  
    $manager->addSchools($schools);  
    $school = $manager->getSchools();  
    var_dump($school);  
    ?>  
J'ai une table school avec les champs id, name & je dois enregistrer dans name -> Ecole A Ecole B Ecole C mais j'ai ces messages d'erreurs ->
    - Notice: Undefined index: id in C:\wamp64\www\php-expert\07-devoir-1-refait\class\School.php on line 18  
    - Notice: Undefined index: name in C:\wamp64\www\php-expert\07-devoir-1-refait\class\School.php on line 19  
    - Fatal error: Uncaught Exception: TEXT doit être une chaîne de caractères.L'objet ne peut pas être créé. in C:\wamp64\www\php-expert\07-devoir-1-refait\class\School.php on line 23  
    - Exception: TEXT doit être une chaîne de caractères.L'objet ne peut pas être créé. in C:\wamp64\www\php-expert\07-devoir-1-refait\class\School.php on line 23  
Merci à ceux & celles qui pourraient m'apporter leurs aides. Bon Weekend à tous.
Réponses apportées à cette discussion
Peut-être que commencer par « Bonjour » et expliquer sommairement les données du problème serait un bon début.
Ensuite, les messages d'erreur, c'est bien, mais quelle partie du code correspond à quel fichier ? Mystère, on doit deviner.
Une question bien posée, c'est déjà ala moitié de la réponse. Donc commencez par remettre de l'ordre dans la présentation, après j'y jetterai peut-être un coup d’œil !
Bonsoir, en effet j'aurais du commencer par dire bonjour.
Concernant le sujet, j'ai finalement finit par réussir à le résoudre.
Bonne soirée.