MySQL Stored Procedures

Hallo zusammen...
habe mal ein wenig rumgeforscht und meine aktuelle Applikation auf SPs umgestellt.
Der Aufruf von SPs die mir ein Resultset zurück geben klappen alle.
Jedoch habe ich auch SPs die Datensätze schreiben, diese klappen widerrum mit PHP nicht. Wenn ich die SPs per Navicat anstoße, schreiben diese mir den gewünschten Datensatz.

Aber hier mal ein wenige Quellcode.
Meine Methode zum Ausführen der SP:
PHP:
public function executeMySQLSP($Spname, $Parameter)
	{
		try{
			$mysqli = new mysqli($this->host, $this->username, $this->password, $this->database);
			
			$query = "Call ".$Spname."(".$Parameter.")";
			if ($result = $mysqli->query($query)) 
			{
				return $result;
			}
			mysqli_close($mysqli);
		}
		catch(Exception $e){
			echo "<div id='error'><b>Fehler: </b><br>".$e->getMessage()."<br><br><b>Datei:</b><br>'".$e->getFile()."'<br><br><b>Zeile:</b><br>".$e->getLine().'</div>';
		}	
	}

Hiermit rufe ich die SP auf, bzw. führe diese aus:
PHP:
$database->executeMySQLSP("AddOrdnerBild","'".$bildname."','".$bildname."', '".$bildtyp."','".ceil($bildsize)."','".$PicHoehe."','".$PicBreite."','".$pfad."','".str_replace(".".$bildtyp,"", $bildhash)."',".$_SESSION['UsrID'].",".$AlbumID.", '".$database->GetSetting('THUMBNAIL_PATH').str_replace(".".$bildtyp,"", $bildhash)."'");

Wie gesagt, bei SPs die mir ein Resultset zurück liefern klappt alles einwandfrei, habe ich irgendwo einen Denkfehler?

-- Edit --
Also ich habe es eben noch einmal validiert.
Der Debugger springt in die Zeile:
PHP:
if ($result = $mysqli->query($query))
übergeht die Prüfung aber und gibt kein Resultset zurück (was ja auch klar wäre, da nichts zurück gegeben wird.)
Habe die Funktion nun wie folgt abgeändert:
PHP:
	public function executeMySQLSP($Spname, $Parameter)
	{
		try{
			$mysqli = new mysqli($this->host, $this->username, $this->password, $this->database);
			
			$query = "Call ".$Spname."(".$Parameter.")";
			if ( ($result = $mysqli->query($query))===false )
{
	printf("Invalid query: %s\nWhole query: %s\n", $mysqli->error, $query);
	exit();
}
			mysqli_close($mysqli);
			
		}
		catch(Exception $e){
			echo "<div id='error'><b>Fehler: </b><br>".$e->getMessage()."<br><br><b>Datei:</b><br>'".$e->getFile()."'<br><br><b>Zeile:</b><br>".$e->getLine().'</div>';
		}	
	}

Nun wird mir folgender Fehler ausgegeben:
Code:
Invalid query: Failed to load routine simplegallery.AddOrdnerBild. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6) Whole query: Call AddOrdnerSubBild('Param1','Param1','Param1','Param1','1','1','Param1','Param1',1,1,'Param2')

Eine suche im Google gab bisher auch keine Ergebnisse.
Die DP hat auch den Data Access "MODIFIES SQL DATA".

Hier die SP:
Code:
DELIMITER $$

DROP PROCEDURE IF EXISTS `simplegallery`.`AddOrdnerBild` $$
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `AddOrdnerBild`(name VARCHAR(50), titel VARCHAR(255), dateityp VARCHAR(10), size DECIMAL(10), PicHoehe INT, PicBreite INT, Pfad VARCHAR(255), hash VARCHAR(35), UsrID INT, AlbumID INT, thumb_pfad VARCHAR(255))
    MODIFIES SQL DATA
INSERT INTO bilder (
	Name ,
	Titel ,
	Dateityp ,
	Größe ,
	`Höhe` ,
	Breite ,
	Pfad ,
	Hash ,
	Bewertung ,
	Bewertung_Anz ,
	Bild_Datum ,
	Autor_ID ,
	Ordner_ID,
	Thumbnail_Pfad
)
VALUES (name,titel,dateityp,size, PicHoehe,PicBreite,Pfad,hash,'0','0',NOW(),UsrID,AlbumID,thumb_pfad) $$

DELIMITER ;

Deklariere ich nun das Feld Größe so: `Größe` erhalte ich folgende Fehlermeldung:
Code:
Invalid query: Unknown column 'Gr??Â????¸e' in 'field list' Whole query: Call AddOrdnerBild('Param1','Param1','Param1','Param1','1','1','Param1','Param1',1,1,'Param2')

-- Edit 2 --
Fehler wurde gefunden...
Es lag an dem Ulaten in den Feldnamen der Stored Procedure.
Umlaute wurden entfernt und nun klappt es auch.
Scheint laut Google ein Bug von MySQL zu sein.
 
Zurück
Oben