Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Output PHP kosong dari database MySQL untuk longblob

Saya berhasil mendapatkan fungsi asli untuk menampilkan baris Base64 dengan melakukan casting seperti ini:

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

Meskipun ini memungkinkan untuk menerima string Base64, itu masih menyertakan karakter yang tidak diinginkan. Karakter yang tidak diinginkan disebabkan oleh JSON_ENCODE. Di bawah ini adalah apa yang saya gunakan untuk memperbaikinya.

Pada dasarnya, 1. hapus karakter yang ditambahkan dan 2. beri tahu JSON_ENCODE untuk tidak mencetak karakter escape dengan JSON_UNESCAPED_SLASHES.

Untuk fungsi 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;
}

Dan dalam skrip Api, ubah pengembalian dari

echo json_encode($resultArray);

untuk

echo json_encode($resultArray, JSON_UNESCAPED_SLASHES);

Sekarang semuanya bekerja dengan fantastis. Apakah ini praktik terbaik? Saya tidak yakin. Saya yakin menyimpan base64 mungkin tidak...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengetahui kata sandi root MySQL saya?

  2. Menggunakan strtotime untuk tanggal sebelum 1970

  3. Masalah Pencocokan MySQL

  4. Permintaan:hitung beberapa agregat per item

  5. Hibernate:constraintName adalah null di MySQL