Maison >base de données >tutoriel mysql >Explication détaillée d'exemples de stockage d'images php dans MySQL
Si vous souhaitez enregistrer des données binaires, telles que des fichiers image et des fichiers HTML, directement dans votre base de données MySQL, alors cet article est fait pour vous ! Je vais vous montrer comment stocker ces fichiers via des formulaires HTML, ainsi que comment accéder et utiliser ces fichiers.
Aperçu de cet article :
. Créez une nouvelle base de données dans mysql
. Un exemple de programme montrant comment enregistrer des fichiers
. Un exemple de programme sur la façon d'accéder aux fichiers
Créer une nouvelle base de données dans MySQL
Tout d'abord, vous devez créer une nouvelle base de données dans votre MySQL. Nous stockerons ces fichiers binaires dans cette base de données. Dans l'exemple, j'utiliserai la structure suivante. Afin de créer la base de données,
vous devez suivre les étapes suivantes :
. Entrez le contrôleur MySql
. Entrez la commande « créer une base de données binaire_data ; »
. Entrez la commande "utiliser binaire_data;"
. Entrez la commande
"CREATE TABLE binaire_data (id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, description CHAR(50), bin_data LONGBLOB, nom de fichier CHAR(50), taille de fichier CHAR(50), type de fichier CHAR(50)); " (Impossible de couper les lignes)
S'il n'y a pas d'accident, la base de données et les tables doivent être établies.
Un exemple de programme sur la façon de stocker des fichiers
En utilisant cet exemple, vous pouvez transférer des fichiers vers la base de données via un formulaire HTML.
store.php3
// store.php3 - par Florian Dittmer
?>
// Si le formulaire est soumis, le code sera exécuté :
if ($submit) {
// Connectez-vous à la base de données
// (Vous devrez peut-être ajuster le nom d'hôte, le nom d'utilisateur et le mot de passe)
MYSQL_CONNECT( "localhost", "root", "password ");
mysql_select_db( "binary_data");
$data = addlashes(fread(fopen($form_data, "r"), filesize($form_data)));
$result=MYSQL_QUERY( " INSERT INTO binaire_data ( description,bin_data,filename,filesize,filetype)
[Continuer de la ligne précédente :] VALUES ($form_description,$data,$form_data_name,$form_data_size,$form_data_type)");
$id = mysql_insert_id();
print "
Ce fichier a l'ID de base de données suivant : $id";
MYSQL_CLOSE();
} else {
// Sinon, affichez le formulaire à stocker nouvelles données
?>
Description du fichier :
Fichier à télécharger/stocker dans la base de données :
}
?> vous verrez un simple formulaire HTML, cliquez sur Parcourir pour sélectionner un fichier, puis cliquez sur Soumettre.
Lorsque le fichier est téléchargé sur le serveur Web, le programme vous indiquera l'ID du fichier qui vient d'être téléchargé. Mémorisez cet ID pour une utilisation ultérieure.
Un exemple de programme sur la façon d'accéder aux fichiers
Vous pouvez accéder au fichier que vous venez d'enregistrer via ce programme
// getdata.php3 - par Florian Dittmer
if($id) {
// Vous devrez peut-être ajuster le nom d'hôte, le nom d'utilisateur et le mot de passe :
@MYSQL_CONNECT( "localhost", "root", " mot de passe" );
@mysql_select_db( "binary_data");
$query = "select bin_data,filetype from Binary_data Where id=$id";
$result = @MYSQL_QUERY($query);
$ data = @MYSQL_RESULT($result,0, "bin_data");
$type = @MYSQL_RESULT($result,0, "filetype"); ;
echo $data;
};
?>
Le programme doit savoir à quel fichier accéder, et vous devez passer l'ID en paramètre.
Par exemple : L'ID d'un fichier dans la base de données est 2. Vous pouvez l'appeler comme ceci :
getdata.php3?id=2
Si vous stockez l'image dans la base de données, vous pouvez l'appeler comme appeler l’image comme ça.
Exemple : Un fichier image a un ID de 3 dans la base de données. Vous pouvez l'appeler ainsi :
Comment stocker des fichiers de plus de 1 Mo :
Si vous souhaitez stocker des fichiers de plus de 1 Mo, vous devez le faire. configurez votre programme, les paramètres PHP, les paramètres SQL pour apporter de nombreuses modifications.
Les éléments suivants peuvent vous aider à stocker des fichiers inférieurs à 24 Mo :
1 Modifiez store.php3 et modifiez la valeur de MAX_FILE_SIZE à 24000000.
2. Modifiez vos paramètres PHP. Dans des circonstances normales, PHP n'autorise que les fichiers de taille inférieure à 2 Mo. Vous devez modifier la valeur de max_filesize (dans php.ini) à 24000000
3. Supprimez la limite de taille de paquet MYSQL. est inférieur à 1 Mo de paquet de données
4. Vous devez redémarrer votre MYSQL avec les paramètres suivants
/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer =4M -O. record_buffer=1M -O max_allowed_packet=24M
5. Si l'erreur persiste :
Il peut s'agir d'une erreur de délai d'attente. Si vous stockez un fichier volumineux via une connexion très lente, le délai par défaut de PHP est de 30 secondes. Vous pouvez modifier la valeur de max_execution_time (dans php.ini) en -1
[Recommandations associées]
3 Vous apprendre à utiliser une machine pour exécuter plusieurs services MySQL<.>
4.Petit script de sauvegarde de base de données Mysql sans hôte virtuel
5Exemple détaillé d'utilisation de mysqldump pour sauvegarder et restaurer des tables.
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!