Entwickler-Ecke
Datenbanken - [PHP] Stack-Overflow bei Stored Procedure
FinnO - Mo 21.09.09 18:37
Titel: [PHP] Stack-Overflow bei Stored Procedure
Hi Leute, ich bin mal wieder von mySQL geplagt :(
Mein Problem äußert sich wie folgt:
(PHP):
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| $SQL = " CREATE PROCEDURE AddVideoEx(IN iCaption varChar(255), IN iLink varChar(255), IN iDescription TEXT) BEGIN INSERT INTO `Videos` ( `ID`, `Link`, `Caption`, `Description`,`Rating` ) VALUES ( NULL, iLink, iCaption, iDescription, 0 ); END"; $res = mysql_query($SQL) or die ("".mysql_error()); $SQL = "CALL AddVideoEx(".$Caption.",".$Link.",".$Description.");"; $res = mysql_query($SQL) or die ("".mysql_error()); |
schmeißt mir einen Stackoverflow á la
Thread stack overrun: 5828 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack. vor die Füße. Kann das u.U. am TEXT-Feld liegen?
BenBE - Di 22.09.09 14:58
Also ich seh hier erstmal nur nen XSS beim Aufruf der SP, aber das hatte ich ja bereits an anderer Stelle angemerkt.
Kannst Du ggf. ein paar Infos zur Konfiguration deines MySQL-Servers posten?
FinnO - Di 22.09.09 18:50
Die Konfiguration ist beim Standard belassen, also so wie du sie ausgeliefert hast.
BenBE - Di 22.09.09 21:19
FinnO hat folgendes geschrieben : |
| Die Konfiguration ist beim Standard belassen, also so wie du sie ausgeliefert hast. |
Default-Konfiguration von Debian Testing also ...
FinnO - Mi 23.09.09 14:20
gut. Angenommen, ich nehme die Fehlermeldung mal wörtlich: wie kriege ich einen größerehn Stack, sprich, wie ändere ich die Einstellungen?
BenBE - Mi 23.09.09 14:30
Ich denk mal eher, es wäre hier wichtig zu schauen, warum er für solch ein einfaches Beispiel 128K haben will. Hochsetzen der Speicherwerte sollte zur Not ja nicht das Problem darstellen ...
FinnO - Do 24.09.09 14:55
*verzweifeltpush*
Gibt's unter Umständen ein Workaround o.ä.? ich finde Stored Procedures eigentlich recht praktisch. Ich hab übrigens mal versucht, nur einen String anstatt einer Textvariable zu speichern, mit gleichem erfolg... Komisch eigentlich.
BenBE - Do 24.09.09 17:01
FinnO hat folgendes geschrieben : |
*verzweifeltpush*
Gibt's unter Umständen ein Workaround o.ä.? ich finde Stored Procedures eigentlich recht praktisch. Ich hab übrigens mal versucht, nur einen String anstatt einer Textvariable zu speichern, mit gleichem erfolg... Komisch eigentlich. |
Du meinst VarChar statt String ;-)
Hab mich auch schon ein wenig gewundert warum er in dem Stackframe plötzlich 128KB Speicher haben will ... Temporär ist erstmal die Lösung "Mehr Speicher" umgesetzt ... mal schauen, ob's hilft ...
FinnO - Do 24.09.09 17:08
womits auch
| benny hat folgendes geschrieben: |
| temporär |
funktioniert, danke!
DonManfred - Fr 25.09.09 13:58
Müssten die varchars nicht eingeklammert sein?
SQL-Anweisung
1:
| $SQL = "CALL AddVideoEx(".$Caption.",".$Link.",".$Description.");"; |
->
SQL-Anweisung
1:
| $SQL = "CALL AddVideoEx('".$Caption."','".$Link."','".$Description."');"; |
???
BenBE - Fr 25.09.09 21:03
Je nach dem, ob das bereits in den Variablen gemacht ist, oder nicht.
Wie gesagt, ist das Problem in diesem Fall aber bereits durch Erhöhung des verfügbaren Speichers gelöst. Warum der aber so viel haben möchte, ist bisher noch unklar ...
FinnO - Fr 25.09.09 21:06
ist in den Variablen gemacht ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!