webForumDet fria alternativet
Logga in / Bli medlem

Problem med procedurer och mysql

Databaser & SQL

2 svar · 300 visningar · startad av Choice2

Medlem sedan sep. 200134 inlägg
Trådstart#1

Hej, jag har skapat en procedur som nedanstående och den funkar bra ifrån mysqlclienten.

CREATE PROCEDURE test_proc (var1 INT, OUT parm1 CHAR(32))
BEGIN
	SELECT user INTO parm1 FROM table1,table2 WHERE table.id=table2.id2 LIMIT 0,var1;
END;
//

Problemet är att det funkar mindre bra när jag försöker använda det från php så får jag tillbaka följande fel: "Result consisted of more than one row"

Då är ju självklart frågan... Hur kan jag lösa detta så att jag kan returnera flera rader från mysql till php?

Medlem sedan dec. 200012 464 inlägg
#2

Om du vill returnera flera rader skall du inte använda select into. Du behöver heller inga parametrar.

Medlem sedan sep. 200134 inlägg
#3

Ok, men om vi säger såhär då:

CREATE PROCEDURE test_proc (var1 INT)
BEGIN
	SELECT msg,user FROM table1,table2 WHERE table.id=table2.id2 LIMIT 0,var1;
END;
//

Detta returnerar alltså följande i mysql clienten men när jag anropar funktionen från text php med funktionen mysql_query() blire knas.

+------+---+
| user | id |
+------+---+
| user1 | 1 |
| user2 | 2 |
| user3 | 3 |
| user4 | 4 |
| user5 | 5 |
+------+---+
5 rows in set (0.01 sec)

Query OK, 0 rows affected (0.15 sec)

Så vad göra?

254 ms totalt · 4 externa anrop · v20260731065814-full.81e7e81c
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)