Procédure Stockée SQL Server Sortie Params en PHP

J'ai besoin d'aide pour l'exécution d'une procédure stockée dans SQL Server en PHP. PHP est exécuté sur un serveur Unix/Linux. Nous ne pouvons pas obtenir des variables de SORTIE pour retourner en PHP. Voici le code PHP:

$conn = mssql_connect('server', 'user', 'pass');
    mssql_select_db('db', $conn);

    $procedure = mssql_init('usp_StoredProc', $conn);

    $tmpVar1 = 'value';
    $tmpVar2 = 'value2';

    $outVar1 = '';
    $outVar2 = '';

    mssql_bind($procedure, "@var1", $tmpVar1, SQLVARCHAR, false, false);
    mssql_bind($procedure, "@var2", $tmpVar2, SQLVARCHAR, false, false);

    mssql_bind($procedure, "@outVar1", $outVar1, SQLVARCHAR, true);
    mssql_bind($procedure, "@outVar2", $outVar2, SQLVARCHAR, true);

    mssql_execute($procedure,$conn);

    print($outVar1);
    print($outVar2);

La procédure stockée ressemble à ceci :

    SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER proc [dbo].[usp_StoredProc]
(
    @var1 as varchar(36), 
    @var2 as varchar(10), 
    @outVar1 varchar(36) OUTPUT, 
    @outVar2 varchar(36) OUTPUT 
)
as
  select distinct 
    @outVar1 = row1, 
    @outVar2 = row2
  from table1
  where column1 = @var1
    and column2 = @var2

Quelqu'un peut me dire pourquoi $outVar1 et $outVar2 ne sont pas remplies? Merci beaucoup pour toute aide!

  • Ne mssql_get_last_message() dire quelque chose d'utile?
  • mssql_get_last_message() renvoie " a Modifié la base de données de contexte pour "dbName"'
  • Avez-vous essayé avec une chaîne de 36 places?
  • Oui, nous avons essayé de spécification de la longueur dans le mssql_bind appel. Toujours pas de chance.
  • Non, lui donner une mesure de la chaîne: $outVar2 = ' ...36 places... ';
  • Pas de chance avec l'adaptation de la chaîne.
  • Je sais. Ce n'est même pas mon projet. J'essaie d'aider un co-travailleur de sortir. Mais maintenant, c'est juste coché moi hors de question que nous n'avons pas pensé à elle.
  • Essayez ma réponse, voir ci-dessous.
  • J'ai juste couru ce script sur mon windows box via WampServer et devinez quoi. Il a travaillé. Donc, apparemment, Unix/Linux + PHP = Déteste MSSQL sortie params dans stockées procs.
  • Comme alternative, vous pouvez toujours SÉLECTIONNER les valeurs que vous voulez sortir de la SP et munissez-vous simplement de l'ensemble de résultats. Accordé, ce n'est pas aussi beau que réel les paramètres de SORTIE.
  • la destruction de la fonction mssql_bind Erreur d'affichage

InformationsquelleAutor ericwindham | 2009-01-26