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.
Partager