Bonjour,
Je travaille sur un projet PHP 5.2 / MSSQL 2005. Je voudrais récupérer une erreur retournée par le serveur SGBD. La fonction mssql_get_last_message() est censée répondre à mon besoin.
Voici l'exemple #1 de la doc de cette fonction :
J'essaye de suivre cette exemple, avec mssql_query(), qui passe une requête INSERT. Je veux provoquer une erreur en insérant une ligne avec un id déjà existant (l'id est la clé primaire de la table).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php // Connexion à MSSQL et sélection de la base de données mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi'); mssql_select_db('php'); // Une requête qui échoue $query = @mssql_query('SELECT * FROM [php].[dbo].[not-found]'); if (!$query) { // La requête a échoué, retourné un message d'erreur et nous // pouvons l'obtenir avec mssql_get_last_message() die('Erreur MSSQL : ' . mssql_get_last_message()); } ?>
La requête dans Microsoft SQL Server Client me renvoieC'est le libellé que j'attends (la violation). Problème, mssql_get_last_message() ne me renvoie que The statement has been terminated, ce qui ne sert à rien, vu qu'il n'y a pas de détail de l'erreur.Violation of PRIMARY KEY constraint 'UK_MISSIONS'. Cannot insert duplicate key in object 'dbo.T_MISSIONS'. The statement has been terminated.
Je n'arrive pas à obtenir le message détaillé de l'erreur. A priori il n'y a pas d'autres fonctions de ce genre. Existe-t-il une autre solution pour y arriver ?
Merci pour votre aide.









Répondre avec citation



Je ne compte plus le nombre de fois où la solution trouvée n'a pas fonctionné pour moi, j'attends juste de voir pour confirmer 
Partager