SQL Like Problem unter PHP

xeal

Mitglied
Hallo zusammen,

versuche über PHP ein SQL like Statement abzusetzen, dies sieht nach der Eingabe 'An' wie folgt aus:

SELECT content FROM sites WHERE content like \'%an%\'

Der Suchgebriff wird über eine Textfeld erfasst und per Javascript ausgelesen. Soweit funktioniert alles ohne Probleme. Kommt es jetzt jedoch zu der Eingabe 'De' sieht das Statement wie folgt aus:

SELECT content FROM sites WHERE content like \'?%\'

Das erste Prozentzeichen wird durch ein Fragezeichen erstezt.Der Inhalt aus dem Textfeld wird bei 2 Buchstaben nicht integriert. Werden 3 Buchstaben eingegeben (Den) erscheint der 3. Buchstabe im Statement.

SELECT content FROM sites WHERE content like \'?n%\'

Das Statement wird über die PHP Zeilen abgesetzt

PHP:
$ajaxsql  = $_POST["sql"];

    $con =     mysql_connect("localhost", "ab","ab", "db");
                   mysql_select_db("db", $con);
    $res = mysql_query($ajaxsql, $con);
                    
    while($row = mysql_fetch_array($res))
    {    
         echo $row['inhalt'];
    }

Hoffe Ihr könnt mir einen Tipp geben wie ich den Fehler beseitigen kann. Besten Dank schon mal.

Gruß Xeal
 
Hallo,

ich schreibe meine LIKE Statements immer so. Und es funktioniert:

Code:
SELECT content FROM sites WHERE content LIKE '%$word%'

Tobee
 
Möglicherweise stimmen die Zeichenkodierungen nicht überein. Des weiteren würde ich nur einzelne Parameterwerte übermitteln und keine ganzen Abfragedefinitionen. Denn PHP besitzt bessere Funktionen zu Validierung von Benutzereingaben wie etwa die mysql_real_escape_string()-Funktion, die du unbedingt einsetzen solltest.
 
danke ihr Beiden für eure schnelle Antwort. Werd mich dem Tipp annehmen und nur noch die Parameter an das PHP Script übergeben. Werd dann das Statement dort zusammen setzen.

Viel Dank

Gruß Xeal
 

Neue Beiträge

Zurück