Kalle_: MySQL: Variablen für query möglich?

Hallöle,

in einer query kommen Variablen vor, die man normalerweise mit PHP setzt und dann die Abfrage an die Datenbank sendet. Nun möchte ich querys gerne testen mit phpmyadmin.

Gibt es so etwas wie:

$art=1;
select * from adresse where art=$art;

oder hat MySQL kein "Gedächtnis"?

LG Kalle

  1. Hi Kalle,

    Ja das geht, mit

    SET @var = "wert";

    Du kannst die Variable dann in deinem Statement mittels  "@var"  ansprechen. Beachte aber:
    1. Wenn du per PHP Statements absetzt, dürfen diese jeweils nur einen Befehl haben (alles, was hinter einem ";" folgt, wird von PHP aus Sicherheitsgründen abgeschnitten) - du musst also mysql_query() für jeden Befehl zusätzlich aufrufen
    2. Die Zuweisung an "@var" gilt nur für die aktuelle Verbindung.

    Hier noch nen Link:

    http://dev.mysql.com/doc/refman/4.0/de/variables.html

    MfG Benjamin

    1. echo $begrüßung;

      SET @var = "wert";
      Du kannst die Variable dann in deinem Statement mittels  "@var"  ansprechen. Beachte aber:

      1. Wenn du per PHP Statements absetzt, dürfen diese jeweils nur einen Befehl haben (alles, was hinter einem ";" folgt, wird von PHP aus Sicherheitsgründen abgeschnitten) - du musst also mysql_query() für jeden Befehl zusätzlich aufrufen

      Da der OP aber PhpMyAdmin verwenden wollte, muss er es doch so tun. PhpMyAdmin sorgt selbst für die Trennung und Einzel-mysql_query-Absendung.

      1. Die Zuweisung an "@var" gilt nur für die aktuelle Verbindung.

      Und da jeder Webseitenaufruf eine neue Verbindung aufbaut, bleibt ihm gar nichts anderes übrig, als beide (oder noch mehr) Befehle mit Semikolon getrennt in das Eingabefeld einzugeben.

      echo "$verabschiedung $name";

    2. Ja das geht, mit

      SET @var = "wert";

      Danke, Benjamin, das habe ich gesucht.

      LG Kalle

  2. hallo,

    warum gibts du die queries nicht einfach mit php aus, so dass
    die werte zur laufzeit halt ersetzt werden?

    deni

    1. warum gibts du die queries nicht einfach mit php aus, so dass
      die werte zur laufzeit halt ersetzt werden?

      Wieso "einfach" ???

      Für jeden select muss ich vorher eine php-Datei hochladen.

      Und warum soll ich mich mit der Ausgabe quälen, wenn phpmyadmin das doch schon "fertig" hat?

      LG Kalle

  3. Hi,

    $art=1;
    select * from adresse where art=$art;

    da kannst du dann ja auch einfach schreiben:

    select * from adresse where art=1;

    Denke aber mal, daß die ganze Geschichte etwas komplexer wird und du nicht weißt, welche Variablem zum Zeitpunkt der Abfrage welchen Wert enthalten.

    Schreib doch einfach die Abfrage mit den Variblen drin in deinem PHP-Skript an der entsprechenden Stelle zusammen und lass dir den String per echo() ausgeben anstatt ihn per mysql_query() an die Datenbank zu schicken.
    Das Ergebnis kannst du dann einfach kopieren und mit phpmyadmin testen.

    Gruß
    Peter