sql >> Databáze >  >> RDS >> Mysql

Prázdný výstup PHP z databáze MySQL pro longblob

Podařilo se mi získat původní funkci pro výstup řádku Base64 přetypováním jako takovým:

    $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");

I když to umožnilo přijmout řetězec Base64, stále obsahoval nežádoucí znaky. Nechtěné znaky byly způsobeny JSON_ENCODE. Níže je uvedeno, co jsem použil k opravě.

V zásadě 1. odstraňte přidané znaky a 2. řekněte JSON_ENCODE, aby netiskl únikové znaky pomocí JSON_UNESCAPED_SLASHES.

Pro funkci 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;
}

A ve skriptu Api změnil návrat z

echo json_encode($resultArray);

do

echo json_encode($resultArray, JSON_UNESCAPED_SLASHES);

Nyní vše funguje fantasticky. Je to osvědčený postup? Nejsem si jistý. Jsem si jistý, že ukládání base64 pravděpodobně není...




  1. Nějaký způsob, jak vybrat z tabulky MySQL, kde pole končí určitým znakem/číslem?

  2. Jak zjistit, zda je vypočítaný sloupec deterministický na serveru SQL Server

  3. Stolní akordeon pomocí php a MySQL

  4. MYSQL – získejte nejnižší nabídku ze skupiny tabulek podle produktu (výsledky jsou divné)