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

Bagaimana cara menyimpan file .pdf ke MySQL sebagai BLOB menggunakan PHP?

DIEDIT UNTUK MENAMBAH :Kode berikut kedaluwarsa dan tidak akan berfungsi di PHP 7. Lihat catatan di bagian bawah jawaban untuk detail selengkapnya.

Dengan asumsi struktur tabel ID integer dan kolom DATA gumpalan, dan dengan asumsi fungsi MySQL digunakan untuk antarmuka dengan database, Anda mungkin bisa melakukan sesuatu seperti ini:

$result = mysql_query 'INSERT INTO table (
    data
) VALUES (
    \'' . mysql_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf')) . '\'
);';

Sebuah kata peringatan, menyimpan gumpalan dalam database umumnya tidak dianggap sebagai ide terbaik karena dapat menyebabkan tabel mengasapi dan memiliki sejumlah masalah lain yang terkait dengannya. Pendekatan yang lebih baik adalah dengan memindahkan file ke suatu tempat di sistem file tempat file dapat diambil, dan menyimpan jalur ke file dalam database alih-alih file itu sendiri.

Juga, menggunakan panggilan fungsi mysql_* tidak disarankan karena metode tersebut secara efektif tidak digunakan lagi dan tidak benar-benar dibangun dengan mempertimbangkan versi MySQL yang lebih baru dari 4.x. Anda harus beralih ke mysqli atau PDO sebagai gantinya.

PERBARUI :fungsi mysql_* tidak digunakan lagi di PHP 5.x dan DIHAPUS SEPENUHNYA DI PHP 7! Anda sekarang tidak punya pilihan selain beralih ke Abstraksi Database yang lebih modern (MySQLI, PDO). Saya telah memutuskan untuk membiarkan jawaban asli di atas tetap utuh karena alasan historis tetapi tidak benar-benar menggunakannya

Berikut cara melakukannya dengan mysqli dalam mode prosedural:

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');

Cara ideal untuk melakukannya adalah dengan pernyataan yang disiapkan MySQLI/PDO.



  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 LAST_INSERT_ID() digunakan dengan beberapa catatan pernyataan INSERT

  2. Kapan saya harus menggunakan indeks komposit?

  3. pengkodean karakter aneh dari data yang disimpan, skrip lama menunjukkan kepada mereka yang baru tidak

  4. Bagaimana saya bisa mengimpor database dengan MySQL dari terminal?

  5. Cara menormalkan Database SQL