Walczę od kilku godzin z pewną procedurą skladowaną MS SQL
Ma za zadanie w przypadku update'u tabeli_1 stworzyć kopie rekordu + guid+ date w tabela_2
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= CREATE PROCEDURE Update_history -- Add the parameters for the stored procedure here @Nr_ma int, @C_1 nchar(10) , . . @C_26 nchar(160), @Guid int, @Date datetime AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here UPDATE [baza].[dbo].[TABLE] SET [C_1] = @C_1 ,[C_2] = @C_2 . . . ,[C_26] = @C_26 WHERE [Nr_ma]= @Nr_ma INSERT INTO [baza].[dbo].[history] SELECT * , @Guid ,@Date FROM [baza].[dbo].[TABLE] WHERE [Nr_ma]= @Nr_ma END GO
Oraz kod PHP, którym staram sie wywołać procedurę:
<?php $login=$_SERVER['AUTH_USER']; //pobranie loginu zalogowanego uzytkownika $dane = get_user_data_from_login(podane parametry); $guid = $dane["guid"]; //pobranie guidu zalogowanego uzyutkownika $serverdb = 'XXX'; $link = sqlsrv_connect($serverdb, $dane); if (!$link) { } //Pobranie ID zalogowanego użytkownika else { $person_ID = "SELECT [ID] FROM [baza].[dbo].[users] WHERE [guid] = '$guid'"; } $rekord = sqlsrv_query($link, $person_ID, $params, $options); $rekord1 = sqlsrv_fetch_array($rekord); //przypisanie wartości do zmiennej $permission = $rekord1[0]; $Nr_machine = $_GET[id]; $C_1 = ($_POST[C_1]); . . . $C_26 = ($_POST[C_26]); $Guid = $permission; $sql = ('Update_history'); $stmt = sqlsrv_prepare( $link, $sql, $params); if( !$stmt ) { } // Execute sqlsrv_execute($stmt); ?>
Ma ktoś jakiś pomysł co robię źlę.
Dodam, żę procedura wywołana w consoli SQl wykonuje sie prawidłowo, strona z kodem PHP tez nie zwraca błedów ale efektów w tabeli wciaz brak
