Bonjour, je suis depuis deux jours sur un problème bien chiant avec le framework CodeIgniter et un serveur microsoft sql 2008.
J'ai crée une procédure avec deux paramètres d'entrée et un paramètre de sortie (je n'en ai jamais fait avant je précise).
Bref j'ai voulu commencer facile, la procédure consiste en un simple SELECT COUNT(*).
Le problème est que ma procédure marche quand je la teste avec le sql management studio mais qu'il m'est IMPOSSIBLE de récupérer la variable de sortie dans mon code php
Voici donc la procédure :
USE [monitoring2]
GO
/****** Object: StoredProcedure [dbo].[connexion] Script Date: 04/22/2010 19:25:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Batch submitted through debugger: SQLQuery1.sql|0|0|C:\Users\admin\AppData\Local\Temp\~vs4B74.sql
ALTER PROCEDURE [dbo].[connexion] (@login varchar(32), @password varchar(255),@resultat AS int OUTPUT)
AS
BEGIN
SELECT @resultat = COUNT(*)
FROM utilisateurs
WHERE utilisateurs.login = @login
AND utilisateurs.pass = @password
END |
Cette procédure m'a l'air de fonctionner et me renvoie bien 1 ou 0 quand je teste sous sql management studio.
Enfin le code php :
Code :
- function connecter()
- {
- $sql = "DECLARE @resultat AS int;
- EXECUTE connexion @login= ?, @password= ?,@resultat = 0;
- SELECT @resultat;";
- $query = $this->db->query($sql, array('admin', '9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684'));
- $res = $query->result_array();
- print_r($res);
- echo "<br />";
- print_r($query);
- echo "Fin de fonction";
- if(!empty($query) && $query->num_rows == 1)
- {
- return true;
- }
- }
|
Enfin voici ce que j'obtiens en sortie :
Array ( [0] => Array ( [computed] => ) )
CI_DB_mssql_result Object ( [conn_id] => Resource id #46 [result_id] => Resource id #58 [result_array] => Array ( [0] => Array ( [computed] => ) ) [result_object] => Array ( ) [current_row] => 0 [num_rows] => 1 [row_data] => ) |
Help
---------------
204 - No Content