Maison >base de données >tutoriel mysql >Comment stocker efficacement des fichiers .pdf sous forme de BLOB dans MySQL à l'aide de PHP ?
Stockage efficace des fichiers .pdf dans les BLOB MySQL utilisant PHP
Stockage de gros objets binaires (BLOB) tels que les fichiers .pdf dans les bases de données MySQL l'utilisation de PHP soulève des questions quant à l'approche optimale. Dans cet article, nous examinerons une solution robuste à ce défi courant.
Solution :
En supposant que vous disposez d'une table de base de données avec un ID et une colonne DATA pour stocker les BLOB, envisagez d'utiliser la technique suivante :
<code class="php">$result = mysql_query('INSERT INTO table ( data ) VALUES ( \'' . mysql_real_escape_string(file_get_contents('/path/to/the/file/to/store.pdf')) . '\' );');</code>
Considérations :
Le stockage des BLOB dans des bases de données présente des inconvénients potentiels tels qu'un gonflement des tables et des difficultés de récupération efficace. Par conséquent, une stratégie recommandée consiste à déplacer le fichier vers un emplacement du système de fichiers et à stocker son chemin dans la base de données à des fins de récupération.
Dépréciation et alternatives modernes :
S'il vous plaît notez que le code fourni est obsolète et ne convient pas à PHP 7 et aux versions ultérieures. Il est fortement conseillé d'adopter des méthodes d'accès aux bases de données modernes comme mysqli ou PDO au lieu des fonctions obsolètes mysql_*.
Exemple mysqli :
En utilisant mysqli en mode procédural, vous peut obtenir la même fonctionnalité avec le code suivant :
<code class="php">$result = mysqli_query($db, 'INSERT INTO table ( data ) VALUES ( \'' . mysqli_real_escape_string(file_get_contents('/path/to/the/file/to/store.pdf'), $db) . '\' );');</code>
Approche préférée :
Pour des performances et une sécurité optimales, envisagez d'exploiter les instructions préparées par MySQLI ou PDO pour insérer des BLOB. dans votre base de données MySQL. Cela garantit à la fois l'efficacité et la protection contre les attaques par injection SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!