Fehler in der Select Anweisung!?
Philipp Walter
- datenbank
0 wiberg0 wiberg0 Philipp Walter0 Viennamade0 wiberg0 Klaus Mock
0 Rebel0 Viennamade0 Erwin
$anfrage="SELECT * FROM login WHERE admin LIKE '$benutzer'";
Kann mir jemand helfen welchen Fehler ich hier bei der Select Anweisung habe.
Ich komme mit den Kommatas noch nicht so zurecht.
Danke im Voraus.
Versuch doch mal
$anfrage="SELECT * FROM login WHERE admin LIKE '".$benutzer."'";
(ferner ist die korrekte Mehrzahl von Komma "Kommata" =))
Versuch doch mal
$anfrage="SELECT * FROM login WHERE admin LIKE '".$benutzer."'";(ferner ist die korrekte Mehrzahl von Komma "Kommata" =))
Übrigens scheint es mit hier um ein Login-Script zu gehen. Ich würde dann doch eher
$anfrage="SELECT * FROM login WHERE admin = '".$benutzer."';";
vorschlagen..
Versuch doch mal
$anfrage="SELECT * FROM login WHERE admin LIKE '".$benutzer."'";(ferner ist die korrekte Mehrzahl von Komma "Kommata" =))
Übrigens scheint es mit hier um ein Login-Script zu gehen. Ich würde dann doch eher
$anfrage="SELECT * FROM login WHERE admin = '".$benutzer."';";
vorschlagen..
Vielen Dank für die Hilfe aber mein SCript funktioniert noch immer nicht.
Hallo!
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?
Beste Grüße
Viennamade
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:
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);
Was sagt denn MySQL dazu?
( echo mysql_error()."<br />\n"; )
Hallo,
Vielen Dank für die Hilfe aber mein SCript funktioniert noch immer nicht.
Ohne einer genauen Fehlerbeschreibung kann Dir sicher nicht geholfen werden. Dazu gibt es zu viele Möglichkeiten, warum die Abfrage nicht ausgeführt wird. Vielleicht funktioniert sich auch, und Dein Fehler liegt irgendwo in der umgebendende Logik ($benutzer ist falsch oder gar nicht gesetzt, Deine Auswertung des Ergebnisses ist fehlerhaft, es existiert kein Datensatz auf den die Abfragebedingungen zutrifft usw.).
Sicher ist nur ein: 'funktioniert nicht' funktioniert nicht;-)
Also setz Dich hin, ergänze Dein Script um Debug-Ausgaben, un vor allem: lasse Dir allfällige Fehlercodes und -meldungen anzeigen. Analysiere diese Ausgaben und wenn Du dann nicht den Fehler gefunden hast, dann melde Dich wieder.
Grüße
Klaus
$anfrage="SELECT * FROM login WHERE admin LIKE '$benutzer'";
Programmierst du in Perl? solltest du evtl. Sonderzeichen schützen???
Hallo,
$anfrage="SELECT * FROM login WHERE admin LIKE '$benutzer'";
Ich komme mit den Kommatas noch nicht so zurecht.
Ich komme mit den Kommatas auch noch nicht zurecht, aber es gab in letzter Zeit mindestens einen erschöpfenden Thread der es uns beiden Wert sein sollte ihn nachzulesen :-)
WHERE s.Kuerzel='DE' AND p.osname='" . substr(strrchr($_SERVER['PHP_SELF'],"/"),0) . "';";
Hier eine Syntax aus einer meiner Seiten ... funktioniert jedenfalls ... also nach p.osname das ' um den Stringoperanden einzuleiten, dann mit " den SQL-String unterbrechen, dann die Variable, dann wieder mit " den SQL-String beginnen und ...
Beste Grüße
Viennamade
hi,
$anfrage="SELECT * FROM login WHERE admin LIKE '$benutzer'";
Kann mir jemand helfen welchen Fehler ich hier bei der Select Anweisung habe.
Ich komme mit den Kommatas noch nicht so zurecht.
Hmm. Meinst du vielleicht mit den quoten ? Isses PERL-DBI ?
Tipp: Statement-Handler vor-preparieren mit Platzhalter '?' like
my $sth_select = $dbh->prepare("SELECT * FROM table WHERE id=?");
später....
$sth_select->execute($fragezeichen); # ?,? -> $x,$y; 2or_more
oder mal eine andere Verwendung von Platzhalter '?'
$dbh->do("INSERT INTO content VALUES(?,?,?,?,?)", undef, $idx, $id, $subject, $time, $body );
$dbh steht für DataBaseHandler.
Platzhalter vereinfachen das Scripten, machen weniger Probleme mit der Quoterei und prepares bringen Vorteile wenn Statements mehrfach im Script verwendet werden.
Gruss, Rolf