J'essaie d'exécuter une procédure stockée MSSQL avec PHP, puis de prendre des résultats et de les répercuter sur une page. Les résultats sont générés sous la forme de deux jeux d'enregistrements différents avec un groupe de colonnes. Voir screenshot. J'ai modifié certains des noms de variables et de sortie pour protéger certaines informations sensibles, mais le code SQL ci-dessous est exactement ce que je cours dans MSSQL Server Management Studio et il renvoie la capture d'écran de sortie ci-dessus.Multiple Recordset/Columns echo à PHP à partir de la procédure stockée MSSQL
J'ai aussi essayé les éléments suivants via PHP, et il retourne aucun résultat:
if ([email protected]_connect($host,$username,$password)) {
$error = $db_connect_error;
echo $error;
}
@mssql_select_db($dbname);
$stmt=mssql_init("[dbo].[stored_procedure_name]");
mssql_bind($stmt, "@StartTime", $start_last, SQLVARCHAR, FALSE);
mssql_bind($stmt, "@EndTime", $end_last, SQLVARCHAR, FALSE);
mssql_bind...continued for all variables
$result = mssql_execute($stmt);
$arr = mssql_fetch_row($result);
print_r($arr);
J'ai essayé quelques autres façons différentes que j'ai trouvé par googler pour obtenir les données à écho ou enregistré dans un tableau en PHP, mais rien que j'ai essayé n'a fonctionné.
déclaration de MSSQL qui fonctionne sans problème dans Management Studio MSSQL Server, c'est le format par défaut lorsque je trouve la procédure stockée et l'exécuter à partir MSSQL SMS:
DECLARE @RC int
DECLARE @StartTime datetime
DECLARE @EndTime datetime
DECLARE @a varchar(4000)
DECLARE @b varchar(4000)
DECLARE @c varchar(50)
DECLARE @d varchar(50)
DECLARE @e varchar(50)
DECLARE @f varchar(50)
DECLARE @g int
DECLARE @h int
DECLARE @i int
DECLARE @j int
DECLARE @k int
DECLARE @l int
DECLARE @m int
DECLARE @n int
DECLARE @o int
DECLARE @p int
DECLARE @q int
DECLARE @r varchar(100)
DECLARE @s int
DECLARE @t float
DECLARE @u float
DECLARE @v float
DECLARE @w int
-- TODO: Set parameter values here.
SET @StartTime = '2017-02-01 07:30'
SET @EndTime = '2017-02-01 19:30'
SET @a = 'string'
SET @b = 'string'
SET @c = 'string'
SET @d = 'string'
SET @e = 'string'
SET @f = 'string'
SET @g = 105
SET @h = 108
SET @i = 101
SET @j = 147
SET @k = 124
SET @l = 141
SET @m = 103
SET @n = 186
SET @o = 185
SET @p = 113
SET @q = 182
SET @r = 'string'
SET @s = 77
SET @t = 101.5
SET @u = 1000
SET @v = 25.4
SET @w = 1
EXECUTE @RC = [dbo].[spLocal_RptCvtgLinestatus]
@StartTime
,@EndTime
,@a
,@b
,@c
,@d
,@e
,@f
,@g
,@h
,@i
,@j
,@k
,@l
,@m
,@n
,@o
,@p
,@q
,@r
,@s
,@t
,@u
,@v
,@w
Où est votre connexion? En outre, vous devriez vraiment envisager de mettre à jour 'mysqli_ *' ou 'PDO'. – nerdlyist
Oups, je n'ai pas ajouté les informations de connexion, je l'ai ajouté à la publication originale au-dessus de l'autre code PHP. –