Nom de la catégorie * * @return id Retourne l'id de la catégorie crée, FALSE si erreur * */ public static function getOrCreate($intitule){ /* [0] Vérification des INPUT =========================================================*/ // Si erreur de type de paramètre, on retourne FALSE if( !Checker::run('varchar(0,40)', $intitule) ) return false; /* [1] Vérification qu'aucune n'a cet intitulé =========================================================*/ $existing = self::getByIntitule($intitule); /* (1) Si existe déja avec cet intitulé, on récupère l'id */ if( is_array($existing) && count($existing) > 0 ) return $existing[0]['idCategorie']; /* [2] Création si l'intitulé n'est pas déja utilisé =========================================================*/ $create_r = Database::getPDO()->prepare("INSERT INTO categories(idCategorie, intitule) VALUES(DEFAULT, :intitule)"); $create_r_status = $create_r->execute( array( ':intitule' => $intitule ) ); // Si erreur de requête if( $create_r_status === false ) return false; /* [3] On vérifie et renvoie l'id =========================================================*/ $created = self::getByIntitule($intitule); /* (1) Si existe déja avec cet intitulé, on récupère l'id */ if( is_array($created) && count($created) > 0 ) return $created[0]['idCategorie']; // Sinon, c'est qu'il y a une erreur return false; } } ?>