Sonderzeichen in mysql - was nun ?

meycom

Well-known member
14 Oktober 2008
79
1
In einer Tabelle habe ich folgenden Link gespeichert :

https://www.domain.de/cgi-bin/megatoplist/toplist.pl?action=click_in&account=kunigunde

wenn ich jetzt versuche den Datensatz der Tabelle über diesen Link zu finden z.B. mit :

$such_link = "https://www.domain.de/cgi-bin/megatoplist/toplist.pl?action=click_in&account=kunigunde";

$query = "SELECT id FROM backlink WHERE link = '$such_link'";
$sql = mysql_query($query, $dz1) or die(mysql_error());
if ($sql) {
$ds = mysql_fetch_object($sql) or die(mysql_error());
$id_such = $ds -> id;
}

wandert mein Programm in's NIRVANA.....
Keine Fehlermeldung - einfach nix !!!

Nehme ich einen Link in dem kein '?' (chr(63)) enthalten ist - funzt es !

Wer weiß wie man das hinkriegt das er den Datensatz findet ?

gruß
meycom
 
In einer Tabelle habe ich folgenden Link gespeichert :

https://www.domain.de/cgi-bin/megatoplist/toplist.pl?action=click_in&account=kunigunde

wenn ich jetzt versuche den Datensatz der Tabelle über diesen Link zu finden z.B. mit :

$such_link = "https://www.domain.de/cgi-bin/megatoplist/toplist.pl?action=click_in&account=kunigunde";

$query = "SELECT id FROM backlink WHERE link = '$such_link'";
$sql = mysql_query($query, $dz1) or die(mysql_error());
if ($sql) {
$ds = mysql_fetch_object($sql) or die(mysql_error());
$id_such = $ds -> id;
}

wandert mein Programm in's NIRVANA.....
Keine Fehlermeldung - einfach nix !!!

Nehme ich einen Link in dem kein '?' (chr(63)) enthalten ist - funzt es !

Wer weiß wie man das hinkriegt das er den Datensatz findet ?

gruß
meycom
Guckst du hier:
https://de.php.net/htmlentities
 
Ich bin mir da überhaupt nicht sicher, aber hat MySQL eventuell ? als eine art Wildcard drin? Vielleicht bin ich im Moment zu sehr in der Rails-Syntax, aber vielleicht kommt der Fehler daher.

Ansonsten: was für ein Feldtyp ist denn das, in dem der Link gespeichert ist?
 
geh doch mal in deine Datenbank und schau wie der Link dort abgegeben ist. Außerdem würde ich auch die Abfrage mit mysql_real_escape_string() machen.

außerdem: lass dir mal dein QueryText einfach so ausgeben und schau ob der wirklich stimmt. Manchmal rutscht einem da wirklich nen kleiner Fehler rein, den man so net bemerkt. Außerdem darfst du beim Speichern in die Datenbank das Fragezeichen nicht konvertieren, wenn du es beim suchen nicht auch umwandelst... also muss immer gleich sein. Das merkste aber, wenn du schaus was in der DB steht
 
Ich bin mir da überhaupt nicht sicher, aber hat MySQL eventuell ? als eine art Wildcard drin? Vielleicht bin ich im Moment zu sehr in der Rails-Syntax, aber vielleicht kommt der Fehler daher.

Ansonsten: was für ein Feldtyp ist denn das, in dem der Link gespeichert ist?

das ist ein ganz normales TEXT-Feld
 
geh doch mal in deine Datenbank und schau wie der Link dort abgegeben ist. Außerdem würde ich auch die Abfrage mit mysql_real_escape_string() machen.

außerdem: lass dir mal dein QueryText einfach so ausgeben und schau ob der wirklich stimmt. Manchmal rutscht einem da wirklich nen kleiner Fehler rein, den man so net bemerkt. Außerdem darfst du beim Speichern in die Datenbank das Fragezeichen nicht konvertieren, wenn du es beim suchen nicht auch umwandelst... also muss immer gleich sein. Das merkste aber, wenn du schaus was in der DB steht

wenn ich den Link 'normal' suche, also wenn ich die Tabelle in einer Schleife Zeile für Zeile (sequentiell) auslese und dann einen Vergleich mache findet der den Link. Nur per WHERE Clausel findet der nix !
 
Ich bin mir da überhaupt nicht sicher, aber hat MySQL eventuell ? als eine art Wildcard drin?

Glaube ich eher weniger, kann mich nicht erinnern das ich schonmal nen Fehler hatte. Und in einem CMS beispielsweise speichert man ja doch ab und zu mal Fragezeichen ab :D
ich probiers mal aus :D

EDIT: also mit einem anschließenden echo $ds->id; bekomme ich die Ausgabe "1" (=ID in der Datenbank...)
 
Wildcard ist doch das %

schon versucht mit link= '".$such_link."' ???

Ich glaube du suchst gerade nach $such_link und nicht nach dem inhalt der Variablen??
Ist aber auch schon spät und ich bin müde...