2010-08-24 3 views
1

je reçois beaucoup d'avertissements dans mes journaux comme: 2010-08-24 09:34:01 Avertissement: Avertissement (2): mssql_num_rows(): argument fourni est pas valide MS Ressource de résultat SQL dans [C: \ xampp \ htdocs \ gâteau \ libs \ modèle \ datasources \ dbo \ dbo_mssql.php, ligne 468] 2010-08-24 09:34:01 Avertissement: Avertissement (2): mssql_free_result (): l'argument fourni n'est pas une ressource de résultat MS SQL valide dans [C: \ xampp \ htdocs \ gâteau \ libs \ modèle \ datasources \ dbo \ dbo_mssql.php, ligne 180] 2010-08-24 09:34:01 Avertissement: Avertissement (2): mssql_free_result(): l'argument fourni n'est pas une ressource de résultat MS SQL valide dans [C: \ xampp \ htdocs \ gâteau \ libs \ modèle \ datasources \ dbo \ dbo_mssql.php, ligne 180]Beaucoup d'avertissements CakePHP dans le journal

ces avertissements ne font que surpasser mes fichiers journaux et les rendre presque inutiles. J'ai recherché les lignes et ils ont utilisé le signe @ pour supprimer ces erreurs comme: @mssql_free_result ($ this-> résultats);

et encore le spectacle dans mon journal est-il de toute façon vraiment les supprimer sans changer le code du gâteau?

MISE À JOUR:

ok j'ai regardé pour cela un peu plus cela ne se passe quand je ne suis pas en mode débogage

et c'est becous dans le débogueur de la fonction de gestion des erreurs de fron il est la suivante:

if (error_reporting() == 0 || $code === 2048 || $code === 8192) { 
    return; 

} 

et dans la gestion des erreurs de production normale:

if ($code === 2048 || $code === 8192) { 
    return; 

} 

donc dans la production, il ne vérifie pas si error_reporting() est supprimée

+1

On dirait que vous avez des messages que vous ne devriez * PAS * ignorer. –

+0

Si c'est clairement un problème reproductible, vous devriez probablement ouvrir un ticket pour cela à http://cakephp.lighthouseapp.com/ – deceze

Répondre

0

erreurs comme qui sont généralement le résultat de la gestion des erreurs de base de données mauvaise. En supposant qu'une requête réussira et en utilisant aveuglément les valeurs renvoyées par les fonctions ... query(), des avertissements de ce type apparaîtront. mssql_query() renvoie un handle d'instruction uniquement s'il y a eu des résultats. Il renverra également TRUE si la requête a réussi mais il n'y a eu aucun résultat et FALSE en erreur. Passer vrai/faux dans les fonctions ultérieures (telles que mssql_num_rows()) crachera les erreurs/avertissements "pas une ressource valide", parce que, bien ... ce ne sont pas des poignées. En d'autres termes, l'erreur n'est pas vraiment sur les lignes indiquées dans les avertissements, c'est plus tôt dans le script, où la requête a été réellement exécutée.

Questions connexes