Codeigniter : $this->db->_error_message() message renvoie la valeur NULL
J'ai une requête qui me donne des résultats parfaits. Mais j'ai besoin d'envoyer les erreurs mysql (le cas échéant) de l'INTERFACE utilisateur. J'ai donc délibérément changement de nom de la colonne à blah_text
.
$qID = 13
$this->db->select('id AS optionID, blah_text AS option, is_correct AS isCorrect');
$oQuery = $this->db->get_where('xq_options', array('question_id' => $qID));
if($oQuery){
$qnaArray['options'] = $oQuery->result_array();
}
else{
//$qnaArray['error'] = $this->db->_error_message();
echo "Error: " . $this->db->_error_message();
}
Tous les obtenir est Error:
J'ai essayé d'utiliser natif mysqli fonction mysqli_error($oQuery);
mais même O/P
Note: j'ai mis 'db_debug' => FALSE
dans la base de données des fichiers de configuration. Si je l'ai mis à VRAI, j'obtiens le message d'erreur CI
Error Number: 1054 Unknown column 'blah_text' in 'field list' SELECT id AS optionID, blah_text AS option, is_correct AS isCorrect
Comment puis-je capture des erreurs sql dans une variable et de l'envoyer à l'INTERFACE utilisateur comme $qnaArray['error']
EDIT: 'db_debug'
est actuellement définie sur FALSE. Je veux que le message d'erreur définis dans une variable. Pas d'écho sur l'écran.
- Si vous obtenez l'erreur à l'aide de
'db_debug'=> TRUE
. Quel est le problème? - J'ai des erreurs sur la page d'IC de style. J'ai besoin de l'envoyer sous forme de webservices json de l'INTERFACE utilisateur, de sorte que je peux être affichées correctement.
- Les clients vont utiliser votre WebService? Android,iPhone ou en frontend par JS?
- iPad et JS
- Je pense que le décapage de la balise et de faire passer le message texte sera suffisant. Vous pouvez utiliser
$qnaArray['error'] = strip_tags($this->db->_error_message());
. - Je ne reçois pas toutes les erreurs.
$this->db->_error_message()
est vide - Avez-vous changé
db_debug
valeur avecTRUE
? - Il est FAUX. Si je l'ai mis à VRAI, je vois des erreurs sur l'écran. Pas dans cette variable.
- Laissez-nous continuer cette discussion dans le chat.
Vous devez vous connecter pour publier un commentaire.
$this->db->_error_message();
ne va pas s'exécuter lors de la sélection de données.Utiliser cette
$query->num_rows()
à la place. Ce n'est pas le point. J'ai besoin de voir le message d'erreur MySQL.Unknown column 'blah_text' in 'field list' SELECT id AS optionID, blah_text AS option, is_correct AS isCorrect
Unknown column 'blah_text' in 'field list' SELECT id AS optionID, blah_text AS option, is_correct AS isCorrect
$this->db->_error_message();
Au lieu de cela:
essayez d'utiliser ceci:
Fatal error: Call to a member function num_rows() on boolean
Mais un message d'erreur CI. Pas de$this->db->_error_message();
À partir de la documentation sur la page https://www.codeigniter.com/userguide3/database/queries.html#handling-errors
De votre point de vue, ce code affiche un message comme celui-ci;
DB Message d'Erreur : Erreur [1146] Table 'mydb.les clients' n'existe pas
De la même façon, votre code affiche le même résultat.
tirages;
Message Err : Erreur [1146] Table 'mydb.xq_options' n'existe pas
Je n'ai pas de créer des tables, de sorte que mes messages sont "non trouvé" messages d'erreur au lieu de la colonne "non trouvé".
Je suppose que c'est ce que tu voulais.
Utilisation
Info disponible dans https://www.codeigniter.com/userguide3/database/queries.html de recherche "gestion des Erreurs"
$error['code']
$error['message']