Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Câu lệnh chuẩn bị của MySql Connector chỉ chuyển 64 byte

Vấn đề nằm ở phương thức khởi tạo của tệp hình ảnh:

std::ifstream   blob_file(filename.c_str());

Điều này phải có thuộc tính chế độ nhị phân:

std::ifstream   blob_file(filename.c_str(), std::ios_base::binary);

Tệp, hình ảnh JPEG, là tệp nhị phân dữ liệu.

Ngoài ra, kết xuất hex ở byte 65 hiển thị 1a , là ký tự cuối của hệ điều hành Windows:
0000040 1a 14 1115 1811 1821 1d1a 1f1d 1f1f 1713

Sau khi sửa hàm tạo, MySql hiển thị kích thước dữ liệu:

mysql> SELECT ID_Picture, LENGTH(Image_Data)
    -> FROM picture_image_data
    -> WHERE ID_Picture = 1;
+------------+--------------------+
| ID_Picture | LENGTH(Image_Data) |
+------------+--------------------+
|          1 |              18453 |
+------------+--------------------+
1 row in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định vị địa lý truy vấn MySQL

  2. Làm việc xung quanh lỗi MySQL Đã tìm thấy khóa chết khi cố gắng lấy khóa; thử bắt đầu lại giao dịch

  3. Vị trí của các bảng cơ sở dữ liệu - MySQL - Windows XP

  4. Kết hợp bất hợp pháp các đối chiếu cho thao tác 'like' trong khi tìm kiếm bằng Ignited-Datatables

  5. Mysql tham gia bên trái với điều kiện trong bảng bên phải