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

Подготвеният от MySql конектор оператор прехвърля само 64 байта

Проблемът е в конструктора на файла с изображение:

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

Това трябва да има атрибута за двоичен режим:

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

Файлът, JPEG изображение, е двоичен данни.

Също така, шестнадесетичният дъмп на байт 65 показва 1a , което е края на символа на файла в ОС Windows:
0000040 1a 14 1115 1811 1821 1d1a 1f1d 1f1f 1713

След коригиране на конструктора, MySql показва размера на данните:

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. Преобразувайте BibTex файл в записи в базата данни с помощта на Python

  2. Използване на SQL резултат в цикъл foreach

  3. MySQL JOIN за замяна на идентификатори със стойност от друга таблица

  4. Ограничаване на паралелни/едновременни изтегляния - Как да разбера дали изтеглянето е отменено?

  5. Може ли 'false' да съответства на някакъв низ в mysql?