use Mosche;
Vielen Dank für die Hilfe aber mein SCript funktioniert noch immer nicht.
Versuch doch mal
$anfrage="SELECT * FROM login WHERE admin LIKE '".$benutzer."'";
^ ^
Vielleicht, weil links und rechts der markierten Zeichen jeweils ein Abstand (space) fehlt?
In Perl brauchen an diese Stellen keine Leerzeichen, und auch ansonsten sehe ich keinen Ort, wo die hinmüssen.
Zum Ausdruck:
- $benutzer
Man sollte darauf achten, dass $benutzer schin frühzeitig richtig (d.h., am besten von der DB selber) "gequotet" wird. Stell dir vor, in $benutzer steht was wie:
matti'; DROP TABLE 'login
Dann bist du deine Tabelle ganz schnell los. In Perl davor einfach:
$benutzer = $dbh->quote($benutzer) einsetzen (wenn $dbh dein Datenbank-Handle beschreibt), dann müsstest du diese Sorge los sein. Dann kannst du auch die Single-Quotes um $benutzer weglassen (werden von quote gesetzt). In anderen Programmiersprachen müsste es entsprechendes geben (einfach mal nach quote bzw. escape suchen.
-
Der Ausdruck:
SELECT * FROM login WHERE admin LIKE $benutzer
sollte richtig sein (wenn du $benutzer richtig gequotet hast (siehe 1)). Denke aber daran, dass du vielleicht gar kein LIKE benutzen willst, zB wenn du ein Login-Script hast, wo du auf Gleichheit überprüfen willst. Bist du ausserdem sicher, dass in $benutzer auch ein Platzhalterzeichen steht (m.W. z.B. % bei PostgreSQL)? Ansonsten schreibe als SQL-Ausdruch:
SELECT * from login WHERE admin = $benutzer; -
Ich kenne deinen Tabellen-aufbau nicht, aber dass ganze sieht mir nach eine Login-Tabelle aus. Hat diese Tatsächlich ein Attribut (Spalte) 'admin'? Poste doch mal, welche Attribute deine Relation hat.
-
Poste mal die Fehlermeldungen.
use Tschoe qw(Matti);
neues Selftreffen?
http://selfcommunity.teamone.de/foren/community/?t=2241&m=2687
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.