sql >> Database >  >> RDS >> Mysql

Lege PHP-uitvoer uit MySQL-database voor een longblob

Ik ben erin geslaagd om de originele functie te krijgen om de Base64-regel uit te voeren door als zodanig te casten:

    $stmt = $this->con->prepare("SELECT owner, pet_name, last_seen, contact, description, CAST(photo as CHAR(1000000) CHARACTER SET utf8) as photo, location FROM Pets");

Hoewel hierdoor de Base64-tekenreeks kon worden ontvangen, bevatte deze nog steeds de ongewenste tekens. De ongewenste tekens werden veroorzaakt door JSON_ENCODE. Hieronder is wat ik heb gebruikt om het te repareren.

Kortom, 1. verwijder de toegevoegde tekens en 2. vertel JSON_ENCODE om de escape-tekens niet af te drukken met JSON_UNESCAPED_SLASHES.

Voor de functie getReports()

function getReports() {
    $stmt = $this->con->prepare("SELECT owner, pet_name, last_seen, contact, description, CAST(photo as CHAR(1000000) CHARACTER SET utf8) as photo, location FROM Pets");
    $stmt->execute();
    $stmt->bind_result($owner, $pet_name, $last_seen, $contact, $description, $photo, $location);

    $reports = array();

    while($stmt->fetch()) {
        $report  = array();
        $report['owner'] = $owner;
        $report['pet_name'] = $pet_name;
        $report['last_seen'] = $last_seen;
        $report['contact'] = $contact;
        $report['description'] = $description;
        $photo = str_replace("\n","",$photo);
        $photo = str_replace("\\/","/", $photo);
        $photo = stripcslashes($photo);
        $report['photo'] = $photo;
        $report['location'] = $location;

        array_push($reports, $report);
    }

    return $reports;
}

En in het API-script, de terugkeer gewijzigd van

echo json_encode($resultArray);

naar

echo json_encode($resultArray, JSON_UNESCAPED_SLASHES);

Nu werkt alles fantastisch. Is dit de beste praktijk? Dat weet ik niet zeker. Ik weet zeker dat het opslaan van base64 waarschijnlijk niet...




  1. MySQL EXP() Functie – Retourneer e Verhoogd tot de Kracht van x

  2. Werken uw medewerkers op afstand? Hier leest u hoe u uw gegevens veilig kunt houden.

  3. MySQL:Snel overzicht van de soorten joins

  4. Waarschuwing:mysql_error():opgegeven argument is geen geldige MySQL-Link-bron