MySQL: Variablen für query möglich?
Kalle_
- datenbank
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
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
echo $begrüßung;
SET @var = "wert";
Du kannst die Variable dann in deinem Statement mittels "@var" ansprechen. Beachte aber:
- 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.
- 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";
Ja das geht, mit
SET @var = "wert";
Danke, Benjamin, das habe ich gesucht.
LG Kalle
hallo,
warum gibts du die queries nicht einfach mit php aus, so dass
die werte zur laufzeit halt ersetzt werden?
deni
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
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