sql >> Databasteknik >  >> RDS >> Mysql

MySql Connector förberedd uttalande överför endast 64 byte

Problemet ligger i bildfilens konstruktor:

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

Detta bör ha attributet binärt läge:

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

Filen, en JPEG-bild, är binär data.

Hexdumpen vid byte 65 visar också 1a , som är Windows OS-sluttecken:
0000040 1a 14 1115 1811 1821 1d1a 1f1d 1f1f 1713

Efter att ha fixat konstruktorn visar MySql datastorleken:

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. Ta bort dubbletter med endast en MySQL-fråga?

  2. Visualisera data

  3. Hur man använder bind_result() istället för get_result() i php

  4. Docker (Apple Silicon/M1 Preview) MySQL inget matchande manifest för linux/arm64/v8 i manifestlistposterna