J'ai un champ varbinary (MAX) dans une base de données SQL Server 2005. J'essaie de comprendre comment insérer des données binaires (c'est-à-dire une image) dans ce champ en utilisant PHP. J'utilise ODBC pour la connexion à la base de données SQL Server. J'ai vu un certain nombre d'exemples qui expliquent cela pour une utilisation avec une base de données MySQL mais je n'ai pas réussi à l'utiliser avec SQL Server. Merci.Insérer des données binaires dans SQL Server en utilisant PHP
Répondre
La réponse simple est: arrêtez ce que vous faites.
Vous ne souhaitez pas stocker de fichiers binaires dans une base de données, sauf si vous rencontrez des problèmes de sécurité très spécifiques. Au lieu de cela, vous voulez stocker leurs noms de fichiers (éventuellement renommer les fichiers pour éviter les conflits), puis stocker dans la base de données. Si la sécurité est un problème, placez-les dans un dossier non Web et utilisez votre code pour récupérer le fichier et ne servir le fichier que si l'utilisateur y a accès.
Le stockage d'images ou de fichiers dans une base de données est une perte d'espace fichier, une mauvaise utilisation des bases de données et ne laisse pas les choses faire ce qu'elles font de mieux; le système de fichiers connaît les fichiers, la base de données connaît les données.
function prepareImageDBString($filepath)
{
$out = 'null';
$handle = @fopen($filepath, 'rb');
if ($handle)
{
$content = @fread($handle, filesize($filepath));
$content = bin2hex($content);
@fclose($handle);
$out = "0x".$content;
}
return $out;
}
utilisation:
$out = prepareImageDBString('/img/myimg.png');
mssql_query("INSERT INTO MyTable(MyImage) VALUES($out) ");
MonImage est le champ SQL Server où le type est l'image
Défini +1. Cela devrait être choisi answear. Il existe de nombreux cas, lorsque l'utilisation de Blob est justifiée (plus facile à sauvegarder 1 fichier de base de données, au lieu de 10 millions de fichiers vraiment petits par exemple). Juste une remarque - la fonction manque de retour à la fin. –
Je ne dirais pas que ce soit une mauvaise pratique, cela dépend de la taille est l'image et comment votre application l'utilise.
Si la taille du fichier est inférieure à 256 Ko, stocker en db est plus efficace; Plus de 1 Mo, stocker dans le système de fichiers est recommandé.
- 1. Dans Sql Server, comment convertir des chaînes binaires en binaire?
- 2. Enregistrement des données binaires dans la base de données SQL SErver dans vb.net
- 3. Insérer des données dans SQL Tableau
- 4. Écrire des fichiers binaires en utilisant SAS?
- 5. stocker des données binaires dans mysql
- 6. MS SQL Server, insérer plusieurs
- 7. Insérer une image dans le champ d'image SQL Server 2005 en utilisant uniquement le code SQL
- 8. Saisie des dates dans la base de données mysql en utilisant sql INSÉRER
- 9. Lire des données MIME en utilisant PHP
- 10. Comment insérer un résultat SQL Server plusieurs fois dans un document Word en utilisant VB
- 11. insérer l'image dans un fichier RTF en utilisant PHP
- 12. Insérer des valeurs dans plusieurs tables SQL
- 13. Comment supprimer des données en double dans SQL Server?
- 14. Comment puis-je insérer des liens dans des fichiers swf en utilisant PHP?
- 15. Comment insérer JPEG dans un champ de base de données SQL Server 2000 de type d'image utilisant Transact SQL
- 16. Insérer dans SQLite avec des variables en utilisant javascript
- 17. Comment restaurer la base de données en utilisant des fichiers sqb dans SQL Server
- 18. Comment sauvegarder une base de données SQL en utilisant PHP?
- 19. Appel de procédure stockée SQL Server en PHP - Impossible d'obtenir les données xml retournées dans php
- 20. Comment déterminer le type de contenu des données binaires dans le champ d'image de SQL Server 2008?
- 21. Comment insérer un octet [] dans une colonne VARBINARY SQL Server
- 22. Insertion de données d'image brutes (binaires?) Dans mysql? (PHP)
- 23. Ecriture de données binaires
- 24. SQL Server Insérer problème de requête
- 25. Problème avec instruction SQL en utilisant PHP
- 26. Insérer dans .. sélectionner .. en utilisant zend db
- 27. Insérer dans l'instruction SQL
- 28. PHP avec SQL Server 2005+
- 29. Insérer des données de foreach à la base de données en PHP
- 30. Insérer une ligne dans la base de données (C#, SQL Server CE)
Qu'en est une chaîne de texte gzdeflated? Les données de texte compressées binaires semblent à la maison dans une base de données. – chiliNUT
Il n'a pas demandé s'il devrait - il a demandé comment il peut le faire. Vous devriez répondre à la question du PO - alors - si vous le devez, ajoutez vos pensées/opinions. – Losbear
Bien que ce soit un bon conseil, il n'aide pas les gens qui google des problèmes similaires à la recherche d'une solution. Toutes les données binaires ne sont pas une image ou un fichier. – dmarra