Submitted by Looking4Help on
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
Permalien Soumis par Looking4Help le 19 Mai, 2010 - 16:01
Au temps pour moi, il existe db_column_exists($table, $column) dans l'API de Drupal...