supprimer message d'erreur

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous,

J'ai un problème embêtant que je n'arrive pas à résoudre. Dans le validate d'un formulaire, je vérifie que le champ de la table de la base de données renseigné existe bel et bien ainsi :

<?php
 
$table_exists
= db_table_exists($form_state['values']['table']);

    if (
$table_exists)
    {
         
       
$query1 = db_query('SELECT '.$form_state['values']['field'].' FROM {'.$form_state['values']['table'].'}');

        if (!
$query1)
        {
           
form_set_error('field', t('This field doesn\'t exist in the informed table.'));
        }
    }
    else
       
form_set_error('table', t('This table doesn\'t exist in the database.'));
?>

Le problème intervient lorsque le champ n'existe pas, ça provoque un crash de la requête (logique) mais m'affiche un message d'erreur pas joli alors que je le gère avecu n message d'erreur moins barbare. J'ai essayé de mettre des try catch mais visiblement ce n'est pas une erreur "throw".

Comment puis-je fais pour qu'il ne bronche pas quand la requête crash ou au moins camoufler le message d'erreur pour que l'utilisateur n'ait que le mien ?

Merci d'avance.

Forum : 
Version de Drupal :