include fragments de code pour contenir des accolades

Petit nouveau ! | 1 Messages

25 oct. 2016, 09:22

Bonjour à tous,
J'apprends actuellement le PHP et j'ai tenté assez naturellement de faire deux fragments de code concernant la connexion à une BDD.

Code : Tout sélectionner

<?php try { $base=new PDO("mysql:host=localhost;dbname=x","root",""); $base->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); echo "connection: OK";

Code : Tout sélectionner

<?php } catch (Exception $e) { die('Erreur: '.$e->getMessage()); } finally { $base=NULL; }
Ceci donc afin de mettre deux includes au lieu de recopier le code sur toutes mes pages, et d'écrire au milieu toutes mes petites affaires.
Mais à exécution est signalé une erreur lié à une fin de fichier inattendu. si je met juste les trois lignes de connexion en premier fichier et seulement catch et finally dans le deuxième, on a plutot:

Code : Tout sélectionner

try{ include('connexion.php')//connexion à la BDD code... } include('connexionFin.php')//copprend le catch et le finally
et là m'est retourné "impossible d'avoir un try sans catch".
je croyais que les includes étaient effectués avant d’exécuter le code, mais ces petites expérience semble vouloir me rappeler que ce n'est pas le cas.

On ne peut donc pas ouvrir { dans un include, écrire du script et fermer } dans un autre include?
Merci beaucoup pour vos éclaircissements, et je vous souhaite une bonne journée!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 oct. 2016, 13:22

salut,

non la syntaxe php doit être correcte.

ceci dit, au vu de ton code tu peux très bien mettre ton catch dans la connexion sachant que tu arrêtes le script dedans (donc le reste osef).

ensuite ce n'est pas recommandé d'avoir un catch global il faut traiter les choses directement pour le faire proprement et proposer à l'utilisateur une solution alternative qui ne va foutre en l'air l'IHM et le laisser devant quelque chose d'inutilsable.
en clair un beau message d'erreur non technique (par exemple lors d'une insertion foireuse).

@+
Il en faut peu pour être heureux ......