PHPでMSSQLストアドプロシージャを実行し、結果を取得してページにエコーしようとしています。結果は、複数の列を持つ2つの異なるレコードセットとして出力されます。 screenshotを参照してください。MSSQLストアドプロシージャから複数のレコードセット/カラムがPHPにエコーされる
いくつかの機密情報を保護するためにいくつかの変数名と出力を変更しましたが、以下のSQLコードはMSSQL Server Management Studioで実行するもので、上にリンクされた出力スクリーンショットを返します。エコーされるように、私は、データを取得するためにグーグル経由で私が見つけた他の異なるいくつかの方法を試してみた
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);
:
は私もPHPを経由して、次のと、何の結果が返されません試してみましたPHPの配列に保存されていましたが、私が試したことはありませんでした。
MSSQL Server Management Studioで問題なく動作しますMSSQL声明私は、ストアドプロシージャを見つけて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
されている場合をあなたの接続?また、実際には 'mysqli_ *'や 'PDO'への更新を考慮する必要があります。 – nerdlyist
接続情報を追加していないので、他のPHPコードの元の投稿に追加しました。 –