Comment faire pour insérer un BLOB et CLOB fichiers dans MySQL?
Je veux stocker des images et des .docx/.doc, .pptx/.ppt, .les fichiers pdf à l'aide de l'extrémité avant de mon logiciel. Je ne comprends pas comment les mettre en œuvre et comment insérer le BLOB et CLOB fichiers dans la table. S'il vous plaît aider.
J'utilise Kubuntu 11.04, MySQL5, Qt 4.7.3.
Vous devez vous connecter pour publier un commentaire.
Deux façons:
1 - Utiliser un LOAD_FILE fonction -
2 - Insérer un fichier en tant que chaîne hexadécimale, par exemple -
INSERT INTO table1 VALUES (1, 0x89504E470D0A1A0A0000000D494844520000001000000010080200000090916836000000017352474200AECE1CE90000000467414D410000B18F0BFC6105000000097048597300000EC300000EC301C76FA8640000001E49444154384F6350DAE843126220493550F1A80662426C349406472801006AC91F1040F796BD0000000049454E44AE426082);
.max_allowed_packet
. Avez-vous des FICHIER privilège? Ce type de champ BLOB, est-ce suffisant pour stocker le fichier?LOAD_FILE a de nombreuses conditions. À partir de la Documentation de MySQL:
Aussi, là il y a des bugs avec LOAD_FILE dans Linux. Voir http://bugs.mysql.com/bug.php?id=38403 pour le bug, et MySQL LOAD_FILE retourner NULL pour des solutions de contournement. Sur Ubuntu 12.04, MySQL 5.5.32, cela fonctionne pour moi:
chown mysql:mysql /tmp/yourfile
secure_file_priv
indice a sauvé ma journée. Utilisationmysql> SELECT @@secure_file_priv;
pour voir la valeur réelleOu vous pouvez simplement utiliser le MySQL Workbench, sélectionnez les lignes, les dernières lignes, insérer une ligne sans le blob, puis il suffit de faire un clic droit et sélectionnez "Valeur de la Charge à Partir d'un Fichier".
ne fonctionne pas mais
devrait (en supposant que les données.png existe dans le répertoire local)