supprimer message d'erreur

Catégories:

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.

#

Au temps pour moi, il existe db_column_exists($table, $column) dans l’API de Drupal…

Syndiquer le contenu