Bonjour.
Pour commencer, le mot clé global ne s'utilise qu'à l'intérieur d'une fonction afin de pouvoir accéder à des variables qui n'existent qu'à l'extérieur de celle-ci, sauf que toi tu l'utilises sans même être dans une fonction.
Ensuite, inutile d'utiliser les fonctions isset et empty à la suite l'une de l'autre :
empty — Détermine si une variable est vide
Une variable est considérée comme vide si elle n'existe pas, ou si sa valeur équivaut àfalse. La fonctionempty()ne génère pas d'alerte si la variable n'existe pas.
Par conséquent, tu peux largement remplacer la condition par:
Au passage, inutile de fermer la balise php si c'est pour la rouvrir juste après.
Pour terminer, tu ne dois pas utiliser une variable ($edit_publication), en dehors du code dans laquelle elle peut être définie, tu devrais donc plutôt l'utiliser uniquement dans la condition dans laquelle tu utilise la méthode fetch.
Sans oublier que si ton code PHP peut être solicité via une requête ajax, tu devrais plutôt renvoyer un en-tête d'erreur au lieu de faire un die, car côté ajax tu ne pourras pas faire la différence entre un déroulement correct ou non.
Edit: Pour rappel, la méthode rowCount ne doit pas être utilisé pour une requête de type SELECT.
J'oubliais, d'où tu sors un élément HTML qui aurait comme id content_text_area ?
Il n'y en a aucun dans le formulaire que tu présentes.