Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Procedura MSSQL wywołanie przez php
Szary_wilk
post 22.06.2012, 11:31:27
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 1.12.2011

Ostrzeżenie: (0%)
-----


Witam.


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

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. -- =============================================
  6. -- Author: <Author,,Name>
  7. -- Create date: <Create Date,,>
  8. -- Description: <Description,,>
  9. -- =============================================
  10. CREATE PROCEDURE Update_history
  11. -- Add the parameters for the stored procedure here
  12. @Nr_ma int,
  13. @C_1 nchar(10) ,
  14. .
  15. .
  16.  
  17. @C_26 nchar(160),
  18. @Guid int,
  19. @Date datetime
  20.  
  21. AS
  22. BEGIN
  23. -- SET NOCOUNT ON added to prevent extra result sets from
  24. -- interfering with SELECT statements.
  25. SET NOCOUNT ON;
  26.  
  27. -- Insert statements for procedure here
  28. UPDATE [baza].[dbo].[TABLE]
  29. SET [C_1] = @C_1
  30. ,[C_2] = @C_2
  31. .
  32. .
  33. .
  34.  
  35. ,[C_26] = @C_26
  36.  
  37. WHERE [Nr_ma]= @Nr_ma
  38.  
  39. INSERT INTO [baza].[dbo].[history]
  40. SELECT * , @Guid ,@Date
  41. FROM [baza].[dbo].[TABLE]
  42. WHERE [Nr_ma]= @Nr_ma
  43.  
  44.  
  45. END
  46. GO


Oraz kod PHP, którym staram sie wywołać procedurę:

  1. <?php
  2.  
  3.  
  4. $login=$_SERVER['AUTH_USER']; //pobranie loginu zalogowanego uzytkownika
  5.  
  6. $dane = get_user_data_from_login(podane parametry);
  7. $guid = $dane["guid"]; //pobranie guidu zalogowanego uzyutkownika
  8.  
  9. $serverdb = 'XXX';
  10. $dane = array( XXX);
  11.  
  12. $link = sqlsrv_connect($serverdb, $dane);
  13.  
  14. if (!$link) {
  15. echo sqlsrv_errors();
  16. print "Nie udalo sie polaczyc z serwerem: ".sqlsrv_errors()."\n";
  17. exit(0);
  18. }
  19. //Pobranie ID zalogowanego użytkownika
  20. else {
  21. $person_ID = "SELECT [ID]
  22. FROM [baza].[dbo].[users]
  23. WHERE [guid] = '$guid'";
  24. }
  25.  
  26. $params = array();
  27. $options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
  28. $rekord = sqlsrv_query($link, $person_ID, $params, $options);
  29. $rekord1 = sqlsrv_fetch_array($rekord); //przypisanie wartości do zmiennej
  30.  
  31. $permission = $rekord1[0];
  32.  
  33. $Nr_machine = $_GET[id];
  34. $C_1 = ($_POST[C_1]);
  35. .
  36. .
  37. .
  38. $C_26 = ($_POST[C_26]);
  39. $Guid = $permission;
  40. $Date = date('Y-m-d G:i:s');
  41.  
  42.  
  43.  
  44. $sql = ('Update_history');
  45. $params = array (&$Nr_machine, &$C_1 , &$C_26, &$Guid, &$Date);
  46.  
  47. $stmt = sqlsrv_prepare( $link, $sql, $params);
  48.  
  49. if( !$stmt ) {
  50. die( print_r( sqlsrv_errors(), true));
  51. }
  52.  
  53.  
  54. // Execute
  55. sqlsrv_execute($stmt);
  56.  
  57.  
  58. ?>



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 sad.gif
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.05.2024 - 02:36