Kann eine Ergebnismenge im angegebenen Kontext nicht zurückgeben

8

Wann immer ich versuche, die Prozedur in mysql aufzurufen, die eine Ergebnismenge zurücksendet, sagt sie mir immer wieder, dass "eine Ergebnismenge im gegebenen Kontext nicht zurückgegeben werden kann".

Ich habe es googlen und einige sagten es ist mysql Bug, einige sagten, Sie sollten Ihren mysqli Treiber ändern und ....

Situation:

Verwendung von mysqli Treiber Client API Bibliothek Version 5.0.51a, PHP Version 5.2.4-2ubuntu5.6, Verwendung von Zend 1.9 RC 1 Mysqli Adapter.

Was soll ich tun?

    
Farid 29.07.2009, 13:18
quelle

5 Antworten

1

Nicht sicher, dass dies die Lösung für Ihr Problem ist, aber wie wäre es mit einer neueren PHP-Version?
PHP 5.2.4 ist definitiv ziemlich alt - wenn es sich also um einen Fehler in PHPs mysqli-Treiber handelt, könnte es seit ... korrigiert worden sein.

Tatsächlich scheint nach einer kurzen Suche ein Problem wie das, das Sie beobachten, zwischen PHP 5.2.3 und PHP 5.2.4 eingeführt worden (und war immer noch hier in PHP 5.2.5).
Siehe Fehler # 42548: PROCEDURE xxx kann keine Ergebnismenge im angegebenen Kontext zurückgeben (funktioniert in 5.2. 3 !!)

Können Sie etwas mit PHP 5.2.9 oder 5.2.10 testen?
Ich weiß, dass diese von Ubuntu selbst in der letzten stabilen Version von Ubuntu nicht zur Verfügung gestellt werden :-( Du musst vielleicht aus Quellen kompilieren: - (

Noch eine Idee wäre, mit PDO_MySql Adapter zu versuchen: vielleicht würde es mit diesem funktionieren? Es ist möglich, den Adapter zu wechseln, ohne zu viele Probleme zu verursachen / ohne stundenlang zu testen?

Da Sie mit Zend Framework 1.9 arbeiten, ist hier ein weiterer Beitrag, der Sie interessieren könnte, und könnte einfacher zu testen sein: gespeicherte Prozedur Fehler nach dem Upgrade auf 1.8

Eine einfache Lösung wäre es, zu Zend Framework 1.7 zurückzukehren; wäre es dir möglich, nur zu testen?


Wie auch immer - Viel Glück !
Und, wenn Sie die Lösung finden, vergessen Sie nicht anzugeben, was das Problem war und wie Sie es gelöst haben; -)

    
Pascal MARTIN 29.07.2009, 16:59
quelle
5

Die Antwort ist, dein php zu aktualisieren, ich habe gerade meine Version auf 5.3.0 aktualisiert, und es funktioniert wie Candy!

    
Farid 29.07.2009 22:31
quelle
1

Ich hatte dieses Problem kürzlich bei einem Vertrag. Der Client benutzte eine Codebase auf windoze und php 5.2.6 und meine Installation war linux und php 5.3.1 Was auch immer wir taten, sie würden nicht zusammenarbeiten, also gaben sie mir am Ende eine windoze vista Maschine und wir installierten php 5.2 .6 und los ging es. Moral der Geschichte: Versionsvergleich zählt. Sonderbare Kunden, die ich noch nie in einem anderen Job hatte. Aber hey, du kannst nicht alles wissen. Ganz bestimmt kein MySql-Problem, nur PHP.

    
ChippyAsh 26.02.2010 22:32
quelle
1

Es funktioniert auch perfekt mit PHP 5.2.10.

Von einer früheren Version habe ich erfolgreich mysqli :: multi_query benutzt, um eine problematische Prozedur aufzurufen und die richtigen Ergebnisse zu erhalten.

    
Thierry Marianne 02.07.2010 12:52
quelle
0

Ich weiß, dass diese Frage alt ist, aber für diejenigen, die immer noch mit 5.2.4 arbeiten und diesen Fehler bekommen, können Sie ein neues mysql PDO-Objekt erstellen, um dieses Problem zu umgehen.

Ich benutze immer noch 5.2.4 auf meinem Dev-Server, um Abwärtskompatibilität für die von mir entwickelten WordPress-Plugins zu gewährleisten.

Unten ist ein Wrapper um prozedurale Aufrufe, die ich zum erfolgreichen Aufruf von Prozeduren sowohl in 5.2.4 (läuft auf meinem Dev-Server), der mir normalerweise den Fehler geben würde, als auch meinem Produktionsserver (der eine neuere Version ausführt, die nicht funktioniert) verwenden Gib den Fehler nicht an.

Es ist WordPress-spezifisch, aber es wäre nicht schwierig, es mit straight php zu modifizieren.

%Vor%     
AndrewD 13.02.2014 14:34
quelle