mysql_real_escape_string(007) = 7 ?

  • Gerade festgestellt, dass bei:

    PHP
    $a = 007.5;
        var_dump (mysql_real_escape_string($a));


    das rauskommt:

    Zitat


    string(3) "7.5"


    ?(

    Zitat

    ruft die Funktion mysql_real_escape_string der MySQL-Bibliothek auf, die folgende Zeichen mit einem Backslash ('\') versieht: \x00, \n, \r, \, ', " und \x1a.


    Da steht doch aber versieht \x00 und nicht 00


    Ist es ein Bug oder ist da ein Hintergrund, den ich nicht kene?


    EDIT:

    PHP
    $a = '0007.5';
        var_dump (mysql_real_escape_string($a));


    ergibt string(6) "0007.5"
    Also liegt der Fehler bei mir, weil ich es als int übergebe?

  • ok.
    Hab gleich mal gesucht und festgestellt, dass es ja gar kein var = int o.ä. gibt.
    heisst ja, dass ich es als string nur auf die Art definieren kann:


    var = '';


    Hmm. Für die mysql_real_escape_string() ist es mir mittlerweile Wusrt, da ich ja eh auf prepared statements "umsteige",
    aber man brauch das Thema sicher öfter.


    Also sollte man am Anfang eines jeden Scripts jetzt festlegen, wie man die var nutzt?
    zB:
    $name = '';
    $zaehler = 0;
    $vieles = array();


    *fragezeichen*

  • ich tue es nicht. (das ist nicht so schwer wie bei anderen programierprachen wo man vorher alles sagen muss was die variable ist)


    der vorteil ist auch das das + zum addieren und der . zum zusammensetzen ist im gegensatz zu javascript (da mache ich immer die var *1 um sie in eine zahl umzuwandeln oder +"" um einen string daraus zu machen)

Jetzt mitmachen!

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