mysql_escape_string

  • Hallo zusammen,


    bin gerade am verzweifeln mit o.g. mysql Anweisung.


    Wie lautet die richtige Schreibweise für folgenden Code:


    $result = mysql_query("SELECT id, text, ueberschrift, aufmacher, datum, autor, kategorie FROM news WHERE intro=1 AND kategorie= mysql_escape_string($kategorie)");


    Der Code is aus einem älteren Buch.


    Es soll geprüft werden, ob der Artikel freigegeben wurde und einer bestimmten Kategorie zugeordnet ist.


    Die Schreibweise ist lt. Manual veraltet, aber wie lautet die neue Schreibweise mit mysql_real_escape_string ??


    Habe mir die neue Schreibweise im Manual zwar durchgelesen, aber irgentwie komme ich noch nicht so ganz klar.


    Villeicht hat ja jemand zeit mir es zu erklären.


    MFG

  • MySql ist jetzt nicht ganz so mein Lieblingsthema :/
    Aber ich versuche es mal^^


    Also mysql_real_escape_string wird theoretisch genau wie mysql_escape_string benutzt.
    In die Klammer gehört an erster Stelle der String.
    mysql_real_escape_string bietet nur noch die Möglichkeit die Verbindung zu wählen^^
    Aber:

    Zitat

    Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.


    Ich glaube, dass das schließende " zu weit hinten steht.. (Logische Schlussfolgerung)


    Wenn du z.B. bei echo oder wo du sonst wo einen String angibst, eine Funktion einbauen würdest, würdest du es ja auch so schreiben:

    PHP
    <span class="syntaxdefault">$array </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"1"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"2"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">echo  </span><span class="syntaxstring">'Test '</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$array</span><span class="syntaxkeyword">);<br />---------------------------------</span><span class="syntaxdefault"> und nicht</span><span class="syntaxkeyword">:<br /></span><span class="syntaxdefault">$array </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"1"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"2"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'Test count($array)'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>


    Zitat von &quot;dancingman&quot;
    PHP
    <span class="syntaxdefault">$result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"SELECT id, text, ueberschrift, aufmacher, datum, autor, kategorie FROM news WHERE intro=1 AND kategorie= mysql_escape_string($kategorie)"</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span>


    müsste also daher mehr

    PHP
    <span class="syntaxdefault">$result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"SELECT id, text, ueberschrift, aufmacher, datum, autor, kategorie FROM news WHERE intro=1 AND kategorie="</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$kategorie</span><span class="syntaxkeyword">));</span><span class="syntaxdefault"> </span>
  • Habe es ausprobiert, aber es kommt immer noch die Meldung "keine Artikel vorhanden", obwohl ich über phpmyadmin einige Artikel eigetragen habe.


    Im Script aus dem Buch gibt es eine 2. Tabelle, wo die Kategorieen stehen.


    Wäre es möglich daß die Kategorieprüfung über die 2. Tabelle erfolgt??


    Wie müßte der Code dann aussehen ??


    Wäre dies überhaupt möglich ??


    Habe das error_reporting(0); mal rausgemacht und es kommt im Browser nun folgende Meldung:


    mysql_num_rows() expects parameter 1 to be resource, boolean given in ...... on line 18


    hier der code von line 18


    if(mysql_num_rows($result)==0)
    {
    echo "<h2>Keine Artikel vorhanden</h2>";
    }


    Stimmt die if Abfrage nicht ??


    MFG

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!