Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MSSQL 2005] Problem z INSERT
phoenix7
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.08.2007
Skąd: Wrocław

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


Witam

Mam pewien poważny problem z PHP + MSSQL 2005 Express + IIS 6.0 (Windows 2003 Server).
Uzyskuje połączenie z bazą danych bez problemu, SELECTy działają aż miło, ale mam pewien problem
z INSERTAMI (na UPDATEach nie testowałem).

W czym tkwi problem (taki oto kod, bardzo prosty):

  1. <?php
  2.  
  3. $query = "
  4. INSERT INTO [dbo].[testowa_tabela](nazwa) VALUES('to jest nowa nazwa'); 
  5. DECLARE @id INT;
  6. SET @id = @@IDENTITY;
  7. SELECT @id;
  8. ";
  9.  
  10. $result = mssql_query($query, $conn);
  11. var_dump(mssql_fetch_assoc($result));
  12.  
  13. ?>


Działa do pewnego czasu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Otóż otrzymuje id (kolejne z identity, zawsze o jeden większe), ale kiedy wchodze przez SQL Server Management Studio 2005 i wyświetlam dane z jego poziomu w bazie danych nie ma takiego rekordu.
Sprawdzałem uprawnienia SQLa, przeglądałem logi, testowałem na innych tabelach zawsze jest to samo. Wygląda to tak jakby ta informacja była przechowywana w jakimś tempie, ale fizycznie nie trafia do właściwej tabeli.

Co ciekawe zmiana kodu na:

  1. <?php
  2.  
  3. $query = "
  4. INSERT INTO [dbo].[testowa_tabela](nazwa) VALUES('to jest nowa nazwa'); 
  5. DECLARE @id INT;
  6. SET @id = @@IDENTITY;
  7. SELECT * FROM [dbo].[testowa_tabela] WHERE id = @id;
  8. ";
  9.  
  10. $result = mssql_query($query, $conn);
  11. var_dump(mssql_fetch_assoc($result));
  12.  
  13. ?>


Zwraca prawidłowe dane, ale tylko w trakcie trwania tego połączenia, jeśli zmienie @id na właściwe id rekordu i odpale skrypt ponownie dostaje pięknego nulla w wyniku (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

A żeby nie zapomnieć jeśli wywołuje dokładnie to samo zapytanie z poziomu SQL Server Management Studio 2005 wszystko jest ok, rekord dodawany jest do właściwej tabeli.

Czy miał ktoś podobny problem, lub zna jakieś rozwiązanie powyższej sytuacji?

Pozdrawiam
PhoeniX
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 00:30