Hướng dẫn php pdf blob mysql - php pdf blob mysql

Đã chỉnh sửa để thêm: Mã sau đã lỗi thời và sẽ không hoạt động trong PHP 7. Xem ghi chú về phía dưới của câu trả lời để biết thêm chi tiết.: The following code is outdated and won't work in PHP 7. See the note towards the bottom of the answer for more details.: The following code is outdated and won't work in PHP 7. See the note towards the bottom of the answer for more details.

Nội dung chính

  • Lời kêu gọi hành động!
  • Chúng ta có thể lưu trữ pdf trong blob không?
  • Tôi có thể tải PDF lên mysql không?
  • Làm thế nào để bạn chèn hình ảnh vào MySQL và hiển thị chúng bằng PHP?
  • PDF có thể được lưu trữ trong cơ sở dữ liệu không?


Giả sử cấu trúc bảng của ID số nguyên và cột dữ liệu Blob và giả sử các hàm MySQL đang được sử dụng để giao diện với cơ sở dữ liệu, có lẽ bạn có thể làm điều gì đó như thế này:

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

Mặc dù vậy, một lời cảnh báo, việc lưu trữ các đốm màu trong cơ sở dữ liệu thường không được coi là ý tưởng tốt nhất vì nó có thể gây ra sự phình to của bảng và có một số vấn đề khác liên quan đến nó. Một cách tiếp cận tốt hơn là di chuyển tệp ở đâu đó trong hệ thống tập tin nơi nó có thể được truy xuất và lưu trữ đường dẫn đến tệp trong cơ sở dữ liệu thay vì chính tệp.

Ngoài ra, việc sử dụng các cuộc gọi hàm mysql_* không được khuyến khích vì các phương pháp đó không được chấp nhận một cách hiệu quả và không thực sự được xây dựng với các phiên bản của MySQL mới hơn 4.x trong tâm trí. Thay vào đó, bạn nên chuyển sang MySQLI hoặc PDO.

CẬP NHẬT: Các chức năng MySQL_* được không dùng nữa trong PHP 5.x và được xóa hoàn toàn trong Php 7! Bây giờ bạn không có lựa chọn nào khác ngoài việc chuyển sang một bản tóm tắt cơ sở dữ liệu hiện đại hơn (MySQLI, PDO). Tôi đã quyết định để lại câu trả lời ban đầu ở trên vì lý do lịch sử nhưng không thực sự sử dụng nó: mysql_* functions are deprecated in PHP 5.x and are REMOVED COMPLETELY IN PHP 7! You now have no choice but to switch to a more modern Database Abstraction (MySQLI, PDO). I've decided to leave the original answer above intact for historical reasons but don't actually use it: mysql_* functions are deprecated in PHP 5.x and are REMOVED COMPLETELY IN PHP 7! You now have no choice but to switch to a more modern Database Abstraction (MySQLI, PDO). I've decided to leave the original answer above intact for historical reasons but don't actually use it

Đây là cách thực hiện với MySQLI trong chế độ thủ tục:

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

Cách lý tưởng để thực hiện nó là với các câu lệnh được chuẩn bị của MySQLI/PDO.

Giống như mọi khi, tôi đang chia sẻ những điều mới mà tôi học được ở đây trên blog của mình. Gần đây tôi đã làm việc với một yêu cầu cho một bảng điều khiển báo cáo ứng dụng web Stack Stack trong đó tôi cần lưu trữ - và cuối cùng - truy xuất tệp .pdf. Tôi đã đọc ở một số nơi (cuốn sách tuyệt vời này là một tài nguyên tuyệt vời) rằng một tùy chọn khả thi là lưu trữ hình ảnh hoặc tài liệu (.pdf trong trường hợp này) trong bảng cơ sở dữ liệu thực tế trái ngược với hệ thống tệp máy chủ. MySQL có kiểu dữ liệu BLOB có thể được sử dụng để lưu trữ các tệp như .pdf, .jpg, .txt và tương tự. Trong bài đăng trên blog này, tôi đề cập đến cách tôi hoàn thành tải lên và lưu trữ tệp .pdf thực tế trong cột BLOB trong MySQL bằng PHP. Bất kỳ sửa chữa, lời khuyên, con trỏ và khuyến nghị cho các thực tiễn tốt nhất luôn được hoan nghênh. Tất cả chúng ta đều học khi chúng ta đi !!!

Bản tin cho các nhà phát triển PHP và MySQL

Nhận một bản sao của Sách điện tử của tôi, 10 Lời khuyên của MySQL cho mọi người, hoàn toàn miễn phí khi bạn đăng ký nhận bản tin OpenLamptech.absolutely free when you subscribe to the OpenLampTech newsletter. absolutely free when you subscribe to the OpenLampTech newsletter.


Self-Promotion:

Chúng ta có thể lưu trữ pdf trong blob không?Since coffee is my favorite drink, you can even buy me one if you would like!Since coffee is my favorite drink, you can even buy me one if you would like!


PDFS có thể được tải từ các tệp, luồng và mảng nhị phân từ- và được lưu. Tất cả đều có thể làm việc với lưu trữ blob.

  • Tôi có thể tải PDF lên mysql không?
  • Làm thế nào để bạn chèn hình ảnh vào MySQL và hiển thị chúng bằng PHP?
  • Làm thế nào để bạn chèn hình ảnh vào MySQL và hiển thị chúng bằng PHP?

Hướng dẫn php pdf blob mysql - php pdf blob mysql

PDF có thể được lưu trữ trong cơ sở dữ liệu không?

Giả sử cấu trúc bảng của ID số nguyên và cột dữ liệu Blob và giả sử các hàm MySQL đang được sử dụng để giao diện với cơ sở dữ liệu, có lẽ bạn có thể làm điều gì đó như thế này:

Mặc dù vậy, một lời cảnh báo, việc lưu trữ các đốm màu trong cơ sở dữ liệu thường không được coi là ý tưởng tốt nhất vì nó có thể gây ra sự phình to của bảng và có một số vấn đề khác liên quan đến nó. Một cách tiếp cận tốt hơn là di chuyển tệp ở đâu đó trong hệ thống tập tin nơi nó có thể được truy xuất và lưu trữ đường dẫn đến tệp trong cơ sở dữ liệu thay vì chính tệp.

Ngoài ra, việc sử dụng các cuộc gọi hàm mysql_* không được khuyến khích vì các phương pháp đó không được chấp nhận một cách hiệu quả và không thực sự được xây dựng với các phiên bản của MySQL mới hơn 4.x trong tâm trí. Thay vào đó, bạn nên chuyển sang MySQLI hoặc PDO.

CẬP NHẬT: Các chức năng MySQL_* được không dùng nữa trong PHP 5.x và được xóa hoàn toàn trong Php 7! Bây giờ bạn không có lựa chọn nào khác ngoài việc chuyển sang một bản tóm tắt cơ sở dữ liệu hiện đại hơn (MySQLI, PDO). Tôi đã quyết định để lại câu trả lời ban đầu ở trên vì lý do lịch sử nhưng không thực sự sử dụng nó: mysql_* functions are deprecated in PHP 5.x and are REMOVED COMPLETELY IN PHP 7! You now have no choice but to switch to a more modern Database Abstraction (MySQLI, PDO). I've decided to leave the original answer above intact for historical reasons but don't actually use it

Đây là cách thực hiện với MySQLI trong chế độ thủ tục:link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"/>
    <title>Upload PDF</title>

Cách lý tưởng để thực hiện nó là với các câu lệnh được chuẩn bị của MySQLI/PDO./p><h4 class="text-center" style="margin-top: 100px;">Upload A PDF To The Database</h4>
<div class="d-flex justify-content-center align-self-center" style="margin-top: 115px;">
    <form action="submit.php" method="POST" accept-charset="utf-8" enctype="multipart/form-data">
        <div class="formgroup container-fluid">
            <label for="project_name">Project Name</label>
            <input type="text" name="project_name"/>
        </div>
        <div class="formgroup container-fluid">
            <input type="file" name="pdf_file" accept=".pdf"/>
            <input type="hidden" name="MAX_FILE_SIZE" value="67108864"/>
       


       


Giống như mọi khi, tôi đang chia sẻ những điều mới mà tôi học được ở đây trên blog của mình. Gần đây tôi đã làm việc với một yêu cầu cho một bảng điều khiển báo cáo ứng dụng web Stack Stack trong đó tôi cần lưu trữ - và cuối cùng - truy xuất tệp .pdf. Tôi đã đọc ở một số nơi (cuốn sách tuyệt vời này là một tài nguyên tuyệt vời) rằng một tùy chọn khả thi là lưu trữ hình ảnh hoặc tài liệu (.pdf trong trường hợp này) trong bảng cơ sở dữ liệu thực tế trái ngược với hệ thống tệp máy chủ. MySQL có kiểu dữ liệu BLOB có thể được sử dụng để lưu trữ các tệp như .pdf, .jpg, .txt và tương tự. Trong bài đăng trên blog này, tôi đề cập đến cách tôi hoàn thành tải lên và lưu trữ tệp .pdf thực tế trong cột BLOB trong MySQL bằng PHP. Bất kỳ sửa chữa, lời khuyên, con trỏ và khuyến nghị cho các thực tiễn tốt nhất luôn được hoan nghênh. Tất cả chúng ta đều học khi chúng ta đi !!!“MySQL Learning Tier” membership. You have access to exclusive content unpublished anywhere else with this membership. With new content being added regularly, continue learning MySQL at any level.


Nếu bạn thích nội dung được viết ở đây, bằng mọi cách, hãy chia sẻ blog này và (các) bài đăng yêu thích của bạn với những người khác có thể được hưởng lợi từ hoặc thích nó. Vì cà phê là đồ uống yêu thích của tôi, bạn thậm chí có thể mua cho tôi một cái nếu bạn muốn!

Tôi đang sử dụng một bảng có tên ‘Project_PDF, với 3 cột (xem ảnh chụp màn hình đi kèm) để lưu trữ dữ liệu:

‘ID,: Loại

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
2?php
if (isset($_POST['submit']) && !empty($_FILES['pdf_file']['name'])) {
     //a $_FILES 'error' value of zero means success. Anything else and something wrong with attached file.
    if ($_FILES['pdf_file']['error'] != 0) {
        echo 'Something wrong with the file.';
    } else { //pdf file uploaded okay.
        //project_name supplied from the form field
        $project_name = htmlspecialchars($_POST['project_name']);

Project_name,: Loại

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
3//attached pdf file information
        $file_name = $_FILES['pdf_file']['name'];
        $file_tmp = $_FILES['pdf_file']['tmp_name'];
        if ($pdf_blob = fopen($file_tmp, "rb")) {
            try {
                include __DIR__."/includes/DatabaseConnection.php";

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ insert_sql = "chèn vào` project_pdf` (`project_name`,` pdf_doc`) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; : project_name,: pdf_doc); ";$insert_sql = "INSERT INTO `project_pdf` (`project_name`, `pdf_doc`)
                              VALUES(:project_name, :pdf_doc);"
;

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ stmt = $ pdo ---> chuẩn bị ($ insert_sql); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ stmt- & gt; bindparam (': project_name', $ presject_name); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; $ stmt- & gt; bindparam (': pdf_doc', $ pdf_blob, pdo :: param_lob);$stmt = $pdo--->prepare($insert_sql);
                $stmt-&gt;bindParam(':project_name', $project_name);
                $stmt-&gt;bindParam(':pdf_doc', $pdf_blob, PDO::PARAM_LOB);

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; if ($ stmt- & gt; exec () === false) {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo'could không lưu thông tin vào cơ sở dữ liệu '; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } khác {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo'information đã lưu '; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } Catch (pdoException $ e) {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo'database lỗi '. $ e- & gt; getMessage ().' trong '. $ e- & gt; getfile (). & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ':'. $ e- & gt; getLine (); & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } & nbsp; & nbsp; & nbsp; & nbsp; } khác {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // fopen () đã không thành công trong việc mở tệp .pdf để đọc. & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; echo'could không mở tệp pdf đính kèm '; & nbsp; & nbsp; & nbsp; & nbsp; } & nbsp; & nbsp; }} khác {& nbsp; & nbsp; // Nút gửi không được nhấp. Không có điều hướng kịch bản trực tiếp. & nbsp; & nbsp; Tiêu đề ('Vị trí: sele_file.php');}if ($stmt-&gt;execute() === FALSE) {
                    echo 'Could not save information to the database';
                } else {
                    echo 'Information saved';
                }
            } catch (PDOException $e) {
                echo 'Database Error '. $e-&gt;getMessage(). ' in '. $e-&gt;getFile().
                    ': '. $e-&gt;getLine();
            }
        } else {
            //fopen() was not successful in opening the .pdf file for reading.
            echo 'Could not open the attached pdf file';
        }
    }
} else {
    //submit button was not clicked. No direct script navigation.
    header('Location: choose_file.php');
}

Xác minh nút được nhấp và tệp được đính kèm

Khối

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

2 đầu tiên xác minh rằng nút 'gửi' từ

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
4 đã được nhấp và trường 'PDF_FILE' có tệp đính kèm bằng cách sử dụng các hàm PHP

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

8 và

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

9 ):

1

isset($_POST['submit'])&&!empty($_FILES['pdf_file']['name']))($_POST['submit'])&&!empty($_FILES['pdf_file']['name']))($_POST['submit']) && !empty($_FILES['pdf_file']['name']))

Mẹo: Có thể xác thực nhiều hơn có thể được thực hiện ở đây để xác minh loại tệp là một .pdf thực tế vì loại tệp đó là những gì chúng tôi mong đợi để lưu trữ trong cơ sở dữ liệu.: More validation can be implemented here to verify the file type is an actual .pdf since that file type is what we are expecting to store in the database.: More validation can be implemented here to verify the file type is an actual .pdf since that file type is what we are expecting to store in the database.

Thông tin: Truy cập tài liệu trực tuyến PHP chính thức để biết thêm thông tin về ISSET () và trống ().: Visit the official PHP online documentation for more information on isset() and empty().: Visit the official PHP online documentation for more information on isset() and empty().

Kiểm tra mảng php $ _files để biết lỗi

BLOB1 BLOB2 cung cấp một số mã lỗi liên quan cho tệp đính kèm tệp. Giá trị 0 (0) có nghĩa là mọi thứ đều ổn với tệp và nó được tải lên thành công. Trong

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

2 cụ thể này, khối nếu giá trị đó không phải là 0 (không), thì chúng tôi BLOB4 trong trình duyệt rằng có điều gì đó không ổn với việc tải lên tệp:

1

$_FILES['pdf_file']['error']!=0['pdf_file']['error']!=0['pdf_file']['error'] != 0

Liên quan: Xem tài liệu trực tuyến PHP chính thức để biết thêm thông tin về lỗi tải lên tệp.: See the official PHP online documentation for more information on file upload errors.: See the official PHP online documentation for more information on file upload errors.

Dữ liệu PHP $ _POST và $ _FILES

Mảng liên kết BLOB5 có giá trị cho trường ‘Project_Name, BLOB6 được ghi lại trong

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
4 và được gửi qua phương thức bài HTTP. Tương tự như vậy, mảng kết hợp BLOB1 có một số giá trị cho một tệp hoặc tệp đính kèm. Tôi đang gán 2 trong số chúng cho các biến, nhưng chỉ sử dụng một - BLOB9 - trong mã tiếp theo:

  • BLOB0 - Tên tệp thực tế từ máy khách. (Có thể được sử dụng trong cột Tên tệp nếu cần
  • BLOB9 - Tên tệp tạm thời của tệp được tải lên như được lưu trữ trên máy chủ.

12323
2
3

$project_name=htmlspecialchars($_POST['project_name']);$file_name=$_FILES['pdf_file']['name'];$file_tmp=$_FILES['pdf_file']['tmp_name'];=htmlspecialchars($_POST['project_name']);$file_name=$_FILES['pdf_file']['name'];$file_tmp=$_FILES['pdf_file']['tmp_name']; = htmlspecialchars($_POST['project_name']);
$file_name = $_FILES['pdf_file']['name'];
$file_tmp = $_FILES['pdf_file']['tmp_name'];

Liên quan: Đọc thêm về các phương thức tải lên bài trong tài liệu PHP trực tuyến chính thức.: Read more about POST upload methods in the official online PHP documentation.: Read more about POST upload methods in the official online PHP documentation.

Đọc trong .PDF Dữ liệu nhị phân và chuẩn bị lưu trữ trong cột Blob MySQL với PHP

Cuộc gọi đến BLOB2 đọc trong tệp ở định dạng nhị phân (BLOB3) thành biến ‘$ pdf_blob. Nếu BLOB2 không thể mở tệp, khối

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

2 này ________ 24 Thông báo trong khối BLOB7 cho trình duyệt:

1

$pdf_blob=fopen($file_tmp,"rb")=fopen($file_tmp,"rb") = fopen($file_tmp, "rb")


Kết nối cơ sở dữ liệu MySQL và các câu lệnh đã chuẩn bị

Cuối cùng, chúng tôi nhìn vào toàn bộ khối

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

3.

Tôi có tất cả thông tin kết nối cơ sở dữ liệu được lưu trữ trong một tệp riêng có tên BLOB9 và đưa nó vào tập lệnh tại thời điểm này bằng Chỉ thị

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

Vì chúng tôi đang giới thiệu đầu vào do người dùng cung cấp từ web

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
4 vào cơ sở dữ liệu, chúng tôi sử dụng các câu lệnh được chuẩn bị tận dụng các phương thức PDO PHP:

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

Chèn tệp .pdf vào cột blob mysql với PHP

Nếu cuộc gọi đến

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
24 không thành công, chúng tôi sẽ tin nhắn cho trình duyệt rằng thông tin không thể được lưu. Mặt khác, dữ liệu được chèn thành công và chúng tôi đã lưu thông tin được lưu:

123456789101112131415161718192345678910111213141516171819
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

thử {& nbsp; & nbsp; Bao gồm __dir __. "/Bao gồm/databaseConnection.php";{     include __DIR__."/includes/DatabaseConnection.php";{
    include __DIR__."/includes/DatabaseConnection.php";

& nbsp; & nbsp; $ insert_sql = "chèn vào` project_pdf` (`project_name`,` pdf_doc`) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;$insert_sql="INSERT INTO `project_pdf` (`project_name`, `pdf_doc`)                   VALUES(:project_name, :pdf_doc);";$insert_sql = "INSERT INTO `project_pdf` (`project_name`, `pdf_doc`)
                  VALUES(:project_name, :pdf_doc);"
;

& nbsp; & nbsp; $ stmt = $ pdo-> Chuẩn bị ($ insert_sql); & nbsp; & nbsp; $ STMT-> BINDPARAM (': Project_Name', $ Project_Name); & nbsp; & nbsp; $ stmt-> bindparam (': pdf_doc', $ pdf_blob, pdo :: param_lob);$stmt=$pdo->prepare($insert_sql);     $stmt->bindParam(':project_name',$project_name);     $stmt->bindParam(':pdf_doc',$pdf_blob, PDO::PARAM_LOB);$stmt = $pdo->prepare($insert_sql);
    $stmt->bindParam(':project_name', $project_name);
    $stmt->bindParam(':pdf_doc', $pdf_blob, PDO::PARAM_LOB);

& nbsp; & nbsp; if ($ stmt-> exec () === false) {& nbsp; & nbsp; & nbsp; & nbsp; echo'could không lưu thông tin vào cơ sở dữ liệu '; & nbsp; & nbsp; } khác {& nbsp; & nbsp; & nbsp; & nbsp; echo'information đã lưu '; & nbsp; & nbsp; }} Catch (pDoException $ e) {& nbsp; & nbsp; Echo'database lỗi '. $ e-> getMessage ().' trong '. $ e-> getfile (). & nbsp; & nbsp; & nbsp; & nbsp; ':'. $ e-> getLine (); & nbsp; & nbsp; }if($stmt->execute()===FALSE){         echo'Could not save information to the database';     }else{         echo'Information saved';     }} catch (PDOException $e){     echo'Database Error '.$e->getMessage().' in '.$e->getFile().         ': '.$e->getLine();    }if ($stmt->execute() === FALSE) {
        echo 'Could not save information to the database';
    } else {
        echo 'Information saved';
    }
} catch (PDOException $e) {
    echo 'Database Error '. $e->getMessage(). ' in '. $e->getFile().
        ': '. $e->getLine();   
}

Lưu ý: Nói chung, nó không phải là một thông lệ tốt đối với BLOB4 bất kỳ loại thông tin lỗi cơ sở dữ liệu nào cho trình duyệt. Thay vào đó, lỗi nên được ghi vào tệp nhật ký. Tuy nhiên, với mục đích của bài đăng trên blog này như một trải nghiệm học tập, tôi đã tìm ra bất kỳ trường hợp ngoại lệ nào có thể phát sinh trong khối

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
30.: It is generally not a good practice to BLOB4 any sort of database error information to the browser. Errors should be written to a log file instead. However, for the purpose of this blog post as a learning experience, I BLOB4 out any exceptions that may arise in the
$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
30 block.
: It is generally not a good practice to BLOB4 any sort of database error information to the browser. Errors should be written to a log file instead. However, for the purpose of this blog post as a learning experience, I BLOB4 out any exceptions that may arise in the
$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
30 block.


Sử dụng biểu mẫu để lưu trữ .pdf trong cột blob mysql với PHP

Hãy để thử dùng biểu mẫu và mã PHP để xác minh các tác phẩm tải lên. Dưới đây là một tệp .pdf mẫu đơn giản mà tôi đã tạo để chạy demo:

Nội dung của tài liệu samplepdf.pdf để tải lên với biểu mẫu.

Xem ảnh chụp màn hình này trong đó tôi điền vào trường ‘Tên dự án với tên dự án đầu tiên chung và đính kèm tệp SimplePDF.pdf:

Đã điền vào biểu mẫu web với tệp đính kèm PDF để tải lên.

Khi nhấp vào nút ‘Gửi, thông tin được lưu trữ thành công trong cơ sở dữ liệu và thông báo thành công được hiển thị trong trình duyệt:

Thông báo được hiển thị trong trình duyệt sau khi tải lên PDF thành công.

Dưới đây là dữ liệu được lưu trong bảng cơ sở dữ liệu MySQL từ tải lên thành công thông qua biểu mẫu web của chúng tôi và mã PHP:

Bảng Project_PDF với PDF được chèn và tên dự án.

Nó hoạt động !!!

Trong bài đăng trên blog tiếp theo, tôi sẽ đề cập đến cách truy xuất tệp .pdf từ cơ sở dữ liệu và hiển thị nó trong trình duyệt. Nếu bạn thấy bất cứ điều gì trong mã mà tôi có thể cải thiện hoặc bất kỳ sai lầm nào, vui lòng cho tôi biết qua phần bình luận bên dưới.

Đọc PHP/MySQL bổ sung

Hãy chắc chắn và truy cập các bài đăng trên blog khác mà tôi đã viết trên PHP và MySQL:

  • Phương thức php pdo lastInsertid () với các ví dụ trong mysql
  • Bắt đầu phối cảnh về mảng PHP
  • Sắp xếp các mảng kết hợp trong PHP với Array_Multisort () - Học tập mới
  • Thả xuống HTML động với PHP và MySQL

Giống như những gì bạn đã đọc? Xem bất cứ điều gì không chính xác? Hãy bình luận bên dưới và cảm ơn vì đã đọc !!!

Lời kêu gọi hành động!

Cảm ơn bạn đã dành thời gian để đọc bài viết này. Tôi thực sự hy vọng bạn phát hiện ra một cái gì đó thú vị và khai sáng. Vui lòng chia sẻ những phát hiện của bạn ở đây, với một người khác mà bạn biết ai cũng sẽ nhận được giá trị tương tự từ đó.

Truy cập trang dự án danh mục đầu tư để xem bài đăng trên blog/văn bản kỹ thuật tôi đã hoàn thành cho khách hàng.Portfolio-Projects page to see blog post/technical writing I have completed for clients.Portfolio-Projects page to see blog post/technical writing I have completed for clients.

Để nhận thông báo qua email (không bao giờ spam) từ blog này (văn xuôi của Digital Digital Owl) cho các bài đăng trên blog mới nhất khi chúng được xuất bản, vui lòng đăng ký (của ý định của riêng bạn) bằng cách nhấp vào nút 'Nhấp để đăng ký!' Trang chủ! .

Hãy chắc chắn và truy cập trang Best Best Of cho một bộ sưu tập các bài đăng trên blog tốt nhất của tôi.“Best Of” page for a collection of my best blog posts.“Best Of” page for a collection of my best blog posts.


Josh Otwell có một niềm đam mê để nghiên cứu và phát triển như một nhà phát triển và blogger SQL. Các hoạt động yêu thích khác tìm thấy anh ta với mũi được chôn trong một cuốn sách tốt, bài báo hoặc dòng lệnh Linux. Trong số đó, anh chia sẻ tình yêu của các trò chơi game nhập vai, đọc tiểu thuyết giả tưởng và dành thời gian với vợ và hai cô con gái.

Tuyên bố miễn trừ trách nhiệm: Các ví dụ được trình bày trong bài đăng này là những ý tưởng giả thuyết về cách đạt được các loại kết quả tương tự. Chúng không phải là giải pháp tốt nhất. Phần lớn, nếu không phải tất cả, các ví dụ được cung cấp, được thực hiện trên một môi trường phát triển/học tập cá nhân và không nên được coi là chất lượng sản xuất hoặc sẵn sàng. Mục tiêu và nhu cầu cụ thể của bạn có thể khác nhau. Sử dụng những thực hành có lợi nhất cho nhu cầu và mục tiêu của bạn. Ý kiến ​​là của riêng tôi.

Nhiều cách tôi có thể giúp

  • Bắt đầu một blog? Tôi sử dụng WordPress cho blog văn xuôi OWL Digital Owl. Hãy để cả hai tiết kiệm tiền cho các kế hoạch được cung cấp. 💸Digital Owl’s Prose blog. Let’s both save money on the plans offered. 💸Digital Owl’s Prose blog. Let’s both save money on the plans offered. 💸
  • Nhận thương hiệu, sản phẩm hoặc dịch vụ của bạn sự chú ý mà nó xứng đáng với vị trí quảng cáo được phân loại giá cả phải chăng trong bản tin OpenLamptech.OpenLampTech newsletter.OpenLampTech newsletter.
  • Cần lưu trữ cho ứng dụng web tiếp theo của bạn hoặc trang web WordPress? Tôi đánh giá cao Hostinger và sử dụng chúng để lưu trữ trang web câu cá bass thích hợp của tôi. Dịch vụ là không ai sánh kịp và họ cung cấp SSL miễn phí.
  • 🔒5 Sự thật tôi đã nhận ra như một nhà phát triển tự học

Tiết lộ: Một số dịch vụ và liên kết sản phẩm trong bài đăng này là các liên kết liên kết. Không có chi phí bổ sung cho bạn, nếu bạn mua hàng bằng cách nhấp qua một trong số họ, tôi sẽ nhận được một khoản hoa hồng.: Some of the services and product links in this post are affiliate links. At no additional cost to you, should you make a purchase by clicking through one of them, I will receive a commission.: Some of the services and product links in this post are affiliate links. At no additional cost to you, should you make a purchase by clicking through one of them, I will receive a commission.

Bản tin cho các nhà phát triển PHP và MySQL

Nhận một bản sao của Sách điện tử của tôi, 10 Lời khuyên của MySQL cho mọi người, hoàn toàn miễn phí khi bạn đăng ký nhận bản tin OpenLamptech.absolutely free when you subscribe to the OpenLampTech newsletter. absolutely free when you subscribe to the OpenLampTech newsletter.

Chúng ta có thể lưu trữ pdf trong blob không?

PDFS có thể được tải từ các tệp, luồng và mảng nhị phân từ- và được lưu. Tất cả đều có thể làm việc với lưu trữ blob.All of which can work with blob storage.All of which can work with blob storage.

Tôi có thể tải PDF lên mysql không?

Hàm Move_uploaded_file () được sử dụng để tải tệp PDF lên máy chủ. Chúng tôi đang chuyển 2 giá trị, tên tệp tạm thời và thư mục nơi tệp sẽ được lưu trữ. Các tệp sẽ được lưu trữ trong thư mục GeekSforGeeks/ PDF/ PDF/ mà chúng tôi đã tạo trước đó.. We are passing 2 values, the temporary file name and the folder where the file will be stored. The files will be stored in the “GeeksForGeeks/pdf/ ” folder which we created earlier.. We are passing 2 values, the temporary file name and the folder where the file will be stored. The files will be stored in the “GeeksForGeeks/pdf/ ” folder which we created earlier.

Làm thế nào để bạn chèn hình ảnh vào MySQL và hiển thị chúng bằng PHP?

Lưu trữ tệp hình ảnh trong cơ sở dữ liệu (Tải lên ....

Kiểm tra xem người dùng chọn tệp hình ảnh để tải lên ..

Truy xuất nội dung của tệp hình ảnh bằng TMP_NAME bằng cách sử dụng hàm PHP File_Get_Contents () ..

Chèn nội dung nhị phân của hình ảnh vào cơ sở dữ liệu bằng PHP và MySQL ..

Hiển thị trạng thái tải lên hình ảnh lên người dùng ..

PDF có thể được lưu trữ trong cơ sở dữ liệu không?

Các tệp PDF là dữ liệu không cấu trúc hoặc bán cấu trúc, điều đó có nghĩa là chúng không có lược đồ cố định.Điều này có nghĩa là nó có thể là một thách thức để lưu trữ nội dung tệp PDF trong cơ sở dữ liệu SQL truyền thống.Tuy nhiên, cơ sở dữ liệu NoQuery là lý tưởng để lưu trữ nội dung tệp PDF vì nó không yêu cầu lược đồ được xác định trước.a NoSQL database is ideal for storing PDF file contents because it doesn't require a predefined schema.a NoSQL database is ideal for storing PDF file contents because it doesn't require a predefined schema.