Comment puis-je stocker des données binaires dans MySQL ?
Réponses
Trop de publicités?Bien que cela ne devrait pas être nécessaire, vous pourriez essayer base64
coder les données en entrée et les décoder en sortie. Cela signifie que la base de données n'aura que des caractères ascii. Cela prendra un peu plus d'espace et de temps, mais tout problème lié aux données binaires sera éliminé.
Si le - non recommandé - Le champ BLOB existe, vous pouvez enregistrer les données de cette façon :
mysql_query("UPDATE table SET field=X'".bin2hex($bin_data)."' WHERE id=$id");
Idée tirée de aquí .
Lorsque j'ai besoin de stocker des données binaires, j'utilise toujours VARBINARY
tel que présenté par d0nut dans l'une des réponses précédentes.
Vous pouvez trouver la documentation sur le site web de MySQL sous la rubrique documentée : 12.4.2 Les types BINARY et VARBINARY .
Si vous demandez quels sont les avantages, lisez la question : pourquoi-varbinaire-au-lieu-de-varchar .
La question se pose également de savoir comment obtenir les données dans la BLOB. Vous pouvez placer les données dans une instruction INSERT, comme le montre l'exemple PHP (bien que vous deviez utiliser la commande mysql_real_escape_stringing au lieu d'ajouter des tirets). Si le fichier existe sur le serveur de la base de données, vous pouvez également utiliser la fonction MySQL LOAD_FILE
- Réponses précédentes
- Plus de réponses
1 votes
stocker-images-dans-la-bd-yea-ou-nay
2 votes
@Nevir : Quelles informations recherchez-vous spécifiquement ? Qu'est-ce qui manque, selon vous, dans @phpguy's y @Mat's des réponses ?
0 votes
Puisque je ne peux pas poster de réponse, je suppose que je vais le faire ici. Si vous voulez stocker certaines données binaires, vous pouvez créer une table, configurer un fichier PHP ou script pour le stocker, et écrire certaines données binaires dans votre table et laisser le script faire son travail. Sérieusement, je ne sais pas vraiment comment utiliser PHP dans d'autres langues...