Mysql
 sql >> база данни >  >> RDS >> Mysql

Празен PHP изход от MySQL база данни за longblob

Успях да накарам оригиналната функция за извеждане на Base64 линия чрез кастинг като такъв:

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

Макар че това позволяваше получаването на низа Base64, той все още включваше нежеланите знаци. Нежеланите знаци бяха причинени от JSON_ENCODE. По-долу е това, което използвах, за да го поправя.

По принцип 1. премахнете добавените знаци и 2. кажете на JSON_ENCODE да не отпечатва екраниращите знаци с JSON_UNESCAPED_SLASHES.

За функцията 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;
}

И в скрипта на Api промени връщането от

echo json_encode($resultArray);

до

echo json_encode($resultArray, JSON_UNESCAPED_SLASHES);

Сега всичко работи фантастично. Това ли е най-добрата практика? Не съм сигурен. Сигурен съм, че съхраняването на base64 вероятно не е...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-бързият начин да изтриете огромна MySQL таблица

  2. Не може да стартира Mysql на Mac

  3. Как да изберете записи с дублиращи се само едно поле и всички други стойности на полета?

  4. Полетата на кой ред се връщат при групиране с MySQL?

  5. java.sql.SQLException:Няма избрана база данни - защо?