Ser. JSON Array in Datenbank übertragen

  • PHP

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Manü.

    Ser. JSON Array in Datenbank übertragen

    Guten Abend,

    mysql_real_escape_string() benutzt man ja bei übergebenen Parametern via POST, GET etc., eigentlich bei Allem was von außen kommt und in die SQL Abfrage mit rein soll.


    Wie funktioniert die Geschichte bei einem String, der zu einem JSON serialisiert wurde, zum Beispiel in diesem Fall:

    PHP-Quellcode

    1. $json_string='{"id":1,"name":"rolf","country":"russia","office":["google","oracle"]} ';
    2. $obj=json_decode($json_string);
    3. //print the parsed data
    4. echo $obj->name; //displays rolf
    5. echo $obj->office[0]; //displays google


    Wenn ich nun Beispielsweise

    PHP-Quellcode

    1. $obj->name
    in die Afrage durch zb. INSERT übergeben muss, escape ich dann jedes übergebene Item einzelnd?

    Oder escaped man dort zu beginn den JSON-String?

    PS: Hatte folgenden Code gefunden, aber denke nicht, dass das so sicher ist oder?
    (Passt natürlich nicht zum oberen Beispiel mit den Bezeichnungen)

    PHP-Quellcode

    1. $array = json_decode($data,true);
    2. foreach($array as $item) {
    3. mysql_query("INSERT INTO `db512172115`.`trial` (name, phone, city, email)
    4. VALUES ('".$item['name']."', '".$item['phone']."', '".$item['city']."', '".$item['email']."')");
    5. }


    Oder benötigt man mysql_real_escape_string() nicht bei INSERTS, da sie ja nicht beim WHERE stehen und somit dies nicht manipulieren können?
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rootbob91“ ()

    Ahoi,

    als erstes mal lieber auf mysqli oder pdo umsteigen, mysql wird dir nicht mehr lange Freude machen.
    Und hier ist zu lesen
    ​mysqli_real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

    Ich denke denk du kannst auch den gesamten Query-String escapen ... sicherer wäre aber wohl die einzelnen Elemente. Wie es im Manual im Beispiel gezeigt ist.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de