PHP - MSSQL - Keine Daten bei gespeicherter Prozedur
Bei dem Aufruf einer gespeicherten Prozedur werden mir keine Daten zurückgeliefert.
Hallo zusammen
Das Problem habe ich bereits längere Zeit, doch langsam beginnt es echt zu nerven.
Wir arbeiten hier mit PHP und MSSQL. Für die Verbindung zwischen PHP und MSSQL habe ich vor einiger Zeit den SQL-Treiber für PHP heruntergeladen und installiert (http://msdn.microsoft.com/de-de/library/cc296170%28v=sql.90%29.aspx)
Nur haben wir seither folgendes Problem. Nehmen wir an, wir haben folgende Prozedur:
Wenn ich diese im Management Studio ausführe, bekomme ich je nach Wahl der Parameter die Rückgabe "success" oder "empty".
Aber im PHP kommt jeweils nichts zurück! An PHP werden so wie es aussieht kein Resultat/keine Daten gesendet.
Eine kleine Prozedur wie z.B. nur einen Select funktioniert problemlos. Andernfalls bekomme ich bei folgender Prozedur auch keinen Wert zurück:
Hatte jemand bereits das gleiche Problem? Woran könnte es liegen?
Wäre sehr dankbar um Hilfe.
Ich nutze PHP in der Version: 5.2.9
Und MSSQL 2008
Vielen Dank
Gruss reboot
Hallo zusammen
Das Problem habe ich bereits längere Zeit, doch langsam beginnt es echt zu nerven.
Wir arbeiten hier mit PHP und MSSQL. Für die Verbindung zwischen PHP und MSSQL habe ich vor einiger Zeit den SQL-Treiber für PHP heruntergeladen und installiert (http://msdn.microsoft.com/de-de/library/cc296170%28v=sql.90%29.aspx)
Nur haben wir seither folgendes Problem. Nehmen wir an, wir haben folgende Prozedur:
ALTER PROCEDURE [dbo].[meineProzedur]
@parameter INT,
@parameter2 VARCHAR(30)
AS
BEGIN
DECLARE @count INT
SET @count = (
SELECT COUNT(spalte) AS c
FROM tabelle
WHERE spalte1 = @parameter
)
IF @count = 0
BEGIN
SELECT 'empty' AS response
RETURN
END
UPDATE tabelle
SET spalteXY = @parameter2
WHERE spalte1 = @parameter
SELECT 'success' AS response
RETURN
Wenn ich diese im Management Studio ausführe, bekomme ich je nach Wahl der Parameter die Rückgabe "success" oder "empty".
Aber im PHP kommt jeweils nichts zurück! An PHP werden so wie es aussieht kein Resultat/keine Daten gesendet.
Eine kleine Prozedur wie z.B. nur einen Select funktioniert problemlos. Andernfalls bekomme ich bei folgender Prozedur auch keinen Wert zurück:
ALTER PROCEDURE [dbo].[meineProzedur]
@parameter INT,
@parameter2 VARCHAR(30)
AS
BEGIN
UPDATE tabelle
SET spalteXY = @parameter2
WHERE spalte1 = @parameter
SELECT 'success' AS response
RETURN
Hatte jemand bereits das gleiche Problem? Woran könnte es liegen?
Wäre sehr dankbar um Hilfe.
Ich nutze PHP in der Version: 5.2.9
Und MSSQL 2008
Vielen Dank
Gruss reboot
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 183979
Url: https://administrator.de/forum/php-mssql-keine-daten-bei-gespeicherter-prozedur-183979.html
Ausgedruckt am: 22.12.2024 um 12:12 Uhr
15 Kommentare
Neuester Kommentar
Moin reboot,
wenn deine StP Rückgabewerte nach außen liefern soll, dann musst du diese auch angeben.
Falls also "response" nach aussen/zum Aufrufer gelangen soll, dann solltest du eine Variable @response mit dem Schlüsselwert OUTPUT deklariren.
Beispiel:
Befüllen kannst du sie in der StP mit
Ich kann auf Anhieb nicht erkennen, was genau den Charme einer Text-Rückgabe 'success' bzw. 'empty' ausmacht.
Meine Mädels hätten wahrscheinlich eher 0 und 1 genommen.
Grüße
Biber
wenn deine StP Rückgabewerte nach außen liefern soll, dann musst du diese auch angeben.
Falls also "response" nach aussen/zum Aufrufer gelangen soll, dann solltest du eine Variable @response mit dem Schlüsselwert OUTPUT deklariren.
Beispiel:
@response varchar(10) OUTPUT
Befüllen kannst du sie in der StP mit
SELECT @response = 'success'
oder ähnliches.Ich kann auf Anhieb nicht erkennen, was genau den Charme einer Text-Rückgabe 'success' bzw. 'empty' ausmacht.
Meine Mädels hätten wahrscheinlich eher 0 und 1 genommen.
Grüße
Biber
Moin Reboot,
funktioniert die Abfrage wenn du sie direkt im PHP schreibst und dann ausführst?
Bsp. :
Wäre das evtl. eine Möglichkeit?
Gruß
funktioniert die Abfrage wenn du sie direkt im PHP schreibst und dann ausführst?
Bsp. :
$dbconnect = mssql_connect($SQL_Server, $SQL_User, $SQL_Pw);
mssql_select_db($SQL_db);
$sql = "Select blalbalbla";
$result = mssql_query($sql);
$row = mssql_fetch_array($result, MSSQL_ASSOC);
Wäre das evtl. eine Möglichkeit?
Gruß
Morgen,
naja aber aus irgendeinem Grund bekommst du keine Antwort von deinem SQL-Server. Dachte halt, dass die Verbindung aus irgendeinem Grund vll geschlossen wird und du Sie wieder öffnen müsstest.
Hast du schonmal geschaut, ob deine Variablen an den entsprechenden Stellen noch die richtigen Werte haben oder ob sie ihre Werte verlieren?!
Gruß
naja aber aus irgendeinem Grund bekommst du keine Antwort von deinem SQL-Server. Dachte halt, dass die Verbindung aus irgendeinem Grund vll geschlossen wird und du Sie wieder öffnen müsstest.
Hast du schonmal geschaut, ob deine Variablen an den entsprechenden Stellen noch die richtigen Werte haben oder ob sie ihre Werte verlieren?!
Gruß