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.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

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