phpbar.de logo

Mailinglisten-Archive

[php] Storedprocedure aufrufen

[php] Storedprocedure aufrufen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mon Dez 12 19:08:03 CET 2005


Hi Avi,

Am Montag, 12. Dezember 2005 11:55 schrieb Irani, Amir:
> Ich habe eine sehr einfache SP unter mysql5.0.16 die so aussieht:
>
> CREATE PROCEDURE p1()
>  SELECT * FROM table;
>
> Bei dem Versuch die SP aufzurufen mit php 4.3.9 mit
>
> CALL p1();
>
> Bekomme ich folgenden Fehler :
> can't return a result set in the given context
>
> Hat bereits einer von euch den selben Versuch gemacht unter php4 und hat
> die Lösung ?

das ist doch eigentlich eine MySQL-Frage... ;-)

"For statements that can be determined only at runtime to return a result set, 
a PROCEDURE %s can't return a result set in the given context error occurs 
(ER_SP_BADSELECT)."
-> http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

Damit ein Bißchen gegoogelt, bringt z.B. diesen Link zu Tage:

	http://forums.mysql.com/read.php?98,57708,57708

Dort ist steht folgende Lösung:

"To solve it I had to read the source code of MySQL5 and found the errorcode 
ER_SP_BADSELECT, and then the place where the error will be sent - 
sql_parse.cpp - checking if CLIENT_MULTI_RESULTS is set. I have found the 
values of the constants and passed them to MySQL - it works!

The example code you can find here: 
http://www.ratchinski.com/dev/mysql5/test.php.txt"

Und in dem Beispiel steht zu lesen:

	// define that client supports the multiple statements
	define('CLIENT_MULTI_STATEMENTS',65536);
	// define that client supports multiple results
	define('CLIENT_MULTI_RESULTS',131072);

Probier das mal aus. :-)


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive