Stored Procedures Variablen ausgeben über PHP

Marycio

Grünschnabel
Hi Leute,

Ich habe grade mit den Stored Procedures begonnen und versuche mich schon seit einiger Zeit an ein paar Beispielen, leider bekam ich bis jetzt über PHP nie den Wert übermittelt den ich gerne hätte.
Mein Datenbanksystem ist "MySQL"

Zum Aufbau:
Tabelle [test2] besteht aus 3 Spalten id , zahl1 und zahl2.
Nun möchte ich, mit hilfe einer SP, die "zahl1" in PHP ausgeben, gesteuert durch eine WHERE Bedingung.

Meine SP sieht folgendermaßen aus:

Code:
CREATE PROCEDURE `count_parm`(OUT param1 INTEGER(11))
    NOT DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
SELECT zahl1
INTO param1
FROM `test2`
WHERE id = 1
LIMIT 1;
END;
Ich hab bei einigen Beispielen gesehen das vor den Variablen ein '@' steht, in welchem Zusammenhang wird das geschrieben?

Zur Ausgabe in PHP:
PHP:
....
        $sql = "CALL count_parm(@param1)";
        $resu = mysql_query($sql) or die(mysql_error());
        echo '-----Ausgabe-----<br />';
        echo $resu.'<br />';
        echo '----Ausgabe ende---<br />';
....
Das ist der Ausschlaggebende Teil, vorneweg steht lediglich der Verbindungsaufbau zur Datenbank, welcher einwandfrei funktioniert.

Als Ausgabe bekomme ich "1", leider weiß ich nicht wo diese herkommt, die zahl1 die ich ausgeben möchte hat den Wert "13".

Ich hoffe ihr könnt mir helfen, ich hab mir schon Manuals angeschaut und versucht dort die Beispiele nachzuvollziehen und auszuprobieren, leider bis jetzt ohne erfolg.

Mit freundlichen Grüßen,
Marycio :)

Ps.: Wenn ich etwas vergessen habe, fragt bitte nach, ich poste solche Fragen eher selten, such mich lieber halb tot, aber hat diesmal leider nicht geklappt.
 
Vielen Dank, ich hab das Problem grade gelöst, dank weiterer Sucherein und deiner Antwort :D

Es sieht jetzt nicht sehr geordnet aus und ist wahrscheinlich sogar noch verbesserungswürdig, aber für mein persöhnlichen Erfolg hat es gereicht :)

Die Sproc:
Code:
CREATE PROCEDURE `count_parm`(OUT param1 INTEGER(11))
    NOT DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
SELECT test2.`zahl1` INTO param1
FROM `test2`
WHERE id = 1
LIMIT 1;
END;
Ich habe dort die Tabelle zusätzlich zur Spalte angegeben.

Zum Script in PHP:
PHP:
        $sql = "CALL count_parm(@param1)";
        $resu = mysql_query($sql) or die(mysql_error());

        $sql = "SELECT @param1";
        $gib_aus = mysql_query($sql) or die(mysql_error());

        $result = mysql_fetch_row($gib_aus);

        echo '-----Ausgabe-----<br />';
        print_r($result);
        echo '<br />';
        echo '----Ausgabe ende---<br />';
Dort hab ich nun noch das SELECT hinzugefügt und dieFunktion 'mysql_fetch_row()'.
Die Ausgabe befindet sich in einem Array, welches ja nun das geringste Problem darstellt, dieses auseinander zu nehmen.

So, ich bedanke mich nochmals für die Hilfe und hoffe das auch andere nun ein guten Ansatz finden die das selbe Problem haben :)
 
Zurück