Ajout d'images à une base de données MySQL via PHP. Comment écrire dans la base de données MySQL en utilisant le code PHP Ajout à MySQL via php

Dernière mise à jour : 11/1/2015

Pour ajouter des données, utilisez l'expression "INSERT":

$query ="INSÉRER LES VALEURS DES PRODUITS (NULL, "Samsung Galaxy III", "Samsumg"");

L'instruction "INSERT" insère une seule ligne dans un tableau. Après le mot-clé INTO, le nom de la table est indiqué, et après VALUES, l'ensemble des valeurs de toutes les colonnes est indiqué entre parenthèses. Puisque nous avons trois colonnes dans le tableau, nous indiquons trois valeurs.

Puisque dans la rubrique précédente, lors de la création d'un tableau, nous avons précisé l'ordre des colonnes suivant : id, nom, société, dans ce cas la valeur NULL est passée pour la colonne id, « Samsung Galaxy III » pour le nom, et « Samsung » pour entreprise.

Puisque la colonne id est définie comme AUTO_INCREMENT, nous n'avons pas besoin de lui donner une valeur numérique spécifique et pouvons transmettre une valeur NULL et MySQL attribuera la prochaine valeur disponible à la colonne.

Voyons maintenant l'ajout de données à l'aide d'un exemple. Créons un fichier créer.php avec le contenu suivant :

Données ajoutées"; ) // ferme la connexion mysqli_close($link); ) ?>

Ajouter un nouveau modèle

Entrez le modèle :

Fabricant:



Ici, le code d'interaction avec la base de données se combine avec la fonctionnalité des formulaires : à l'aide du formulaire, on saisit les données à ajouter à la base de données.

Sécurité et MySQL

Ici, nous avons utilisé la fonction mysqli_real_escape_string(). Il est utilisé pour échapper les caractères d'une chaîne, qui est ensuite utilisée dans une requête SQL. Il prend comme paramètres un objet de connexion et une chaîne à échapper.

Ainsi, nous utilisons en fait l'échappement de caractères deux fois : d'abord pour l'expression SQL en utilisant la fonction mysqli_real_escape_string(), puis pour le HTML en utilisant la fonction htmlentities(). Cela nous permettra de nous protéger de deux types d’attaques à la fois : les attaques XSS et les injections SQL.

Commentaires déplacés du blog

SERGÉI
14/09/2016 à 01:25
Bon après-midi!
Je suis intéressé par la question suivante : quelle est la manière la plus simple d'organiser le stockage des données et des paramètres du programme sans utiliser de base de données ? Je ne veux pas être lié à MySQL ou Access.

ADMINISTRATEUR
14/09/2016 à 22h14
Bonjour!

Propriétés.Paramètres
App.Config
Fichier XML
sérialisation
Essayez d'en choisir un dans la liste.

NICOLAS
16/09/2016 à 02:28
Bonjour, comment puis-je supprimer la ligne sélectionnée dans dataGridVIew de dataGridVIew et phpMyAdmin.

PhpMyAdmin ? Ceci est juste un shell pour travailler avec une base de données, pouvez-vous expliquer ?

NICOLAS
18/09/2016 à 02:24
Il est nécessaire que la ligne sélectionnée soit supprimée du DataGridView et de la base de données.

ADMINISTRATEUR
19/09/2016 à 07h00
Comment supprimer une ligne dans une base de données Mysql - ajout d'un article.

NICOLAS
20/09/2016 à 09h20
Merci beaucoup.

DIMA
20/09/2016 à 10:24
Bonjour, est-il possible d'implémenter cette méthode non pas via DataGridView, mais via ComboBox ? Si c'est le cas, comment? Merci.

ADMINISTRATEUR
22/09/2016 à 03:21
Bonjour. Exemple:

GENNADY
22/09/2016 à 18h25
pourquoi devrais-je saisir un tel texte dans la base de données System.Windows.Forms.TextBox, Text: ge

D'ailleurs, ce (ge) à la fin il est écrit par gène, même si le texte est précisé dans les paramètres du tableau. Le mot de gène aurait dû rentrer plus loin, j'affiche ce tableau dans mon programme et il s'avère qu'il affiche tout ce texte inutile pour moi

ADMINISTRATEUR
24/09/2016 à 04:17
Il est fort probable que la requête SQL soit mal écrite, par exemple :

Dans textBox1, entrez le nom : Gena.

Requête SQL : « Insérer dans les valeurs du nom de la table (textBox1, ..) » ; Résultat : System.Windows.Forms.TextBox

Et vous devez transmettre : « Insérer dans les valeurs du nom de la table (textBox1.Text, ..) » ;
Résultat : Géna

GENNADY
24/09/2016 à 18h41
C'est comme ça. Merci

SERGÉI
25/09/2016 à 11:51
Bonjour. Comment implémenter l'ajout à la base de données via textBox ?

ADMINISTRATEUR
26/09/2016 à 20:53
Tout est pareil en principe. Par exemple, prenons le tout dernier exemple, il lui faut :

//crée des paramètres et les ajoute à la collection cmd.Parameters.AddWithValue("@Name", textBox1.Text); cmd.Parameters.AddWithValue("@LastName", textBox2.Text);

maintenant les paramètres : Name et LastName reçoivent les valeurs saisies dans les zones de texte et les transfèrent dans la base de données

LINARA
27/09/2016 à 17h45
Bonjour, comment puis-je sélectionner une ligne dans dataGridVIew et phpMyAdmin ?

ADMINISTRATEUR
29/09/2016 à 02:06
Je ne sais pas comment mettre en surbrillance une ligne dans phpMyAdmin. Et dans dataGridView, par exemple, cela peut être fait à l'aide de l'événement SelectionChanged.

P.S.H.
30/09/2016 à 03:48
2Linara :
Si vous souhaitez modifier les lignes de cette façon, prenez un outil à la HediSQL, configurez et modifiez les lignes.

2administrateur
Bonne journée! Merci pour le matériel - tout est très cool)
Question : J'ajoute des données avec la requête suivante (c'est une requête de test) :

String sql = "INSERT INTO utilisateurs (`FIO`, `Tour`, `Count`, `Cost`, `Date`, `Passeport`, `Birth`) VALEURS ("Kolyan", "Moscou", "1+1 ", 1100, "2011-11-11", "1111 1111", "9.11.1900");";

Les données sont bien saisies, mais dans la base de données (mysql) au lieu de l'alphabet cyrillique, il apparaît "????".

Visual Studio indique que System.String est une séquence Unicode.

J'ai aussi essayé :

ALTER DATABASE `test` COLLATE "koi8r_general_ci" ; ALTER TABLE `utilisateurs` COLLATE="koi8r_general_ci"; ALTER DATABASE `test` COLLATE "utf8_unicode_ci" ; ALTER TABLE `utilisateurs` COLLATE="utf8_unicode_ci";

Mais ça n'aide pas...
Qu'est-ce qui ne va pas ? Différents encodages VS et DB ? Ou quoi?
Pourriez-vous m'indiquer ce qu'il faut lire/modifier.
Merci

ADMINISTRATEUR
01/10/2016 à 09:49
Bonjour.

Dans la base de données (et dans la table) le mappage est utf_general_ci

Existe-t-il une telle comparaison ? Peut-être utf8_general_ci ?

Habituellement, ils créent une base de données Mysql en choisissant la comparaison utf8_general_ci, il n'y a donc aucun problème avec l'alphabet cyrillique, à moins, bien sûr, que des escrocs viennent du client vers le serveur.

COLLATION est utilisé à des fins de comparaison, mais dans ce cas, l'encodage (jeu de caractères) est important. Par conséquent, vous devez d'abord vous assurer qu'il est correctement défini sur le serveur, par exemple en utf8, et non en latin1.

Lors de la connexion via le connecteur .net (par défaut), latin1 est utilisé, vous devez donc parfois spécifier explicitement l'encodage utf8 dans la chaîne de connexion :

MySqlConnection mycon ; mycon = new MySqlConnection("server=127.0.0.1;uid=vasya;pwd=123;database=test;Charset=utf8;"); //MySqlConnectionStringBuilder : mysqlCSB.CharacterSet = "utf8" ;

P.S.H.
01/10/2016 à 11:34
Tu as raison, je me suis fait pipi, utf8_general_ci !
Oui, ça a aidé, ;Charset=utf8;
Merci beaucoup!

SERGIE
10/02/2016 à 11:02
Merci pour l'exemple de travail. Question
J'ai créé un champ de texte dans lequel je souhaite saisir l'adresse IP de la base de données, mais je ne sais pas comment insérer ces données ici

Chaîne conStr = "server=@textBox2;user=test;" +
"base de données=test;mot de passe=test;";
S'il vous plaît dites-moi comment insérer des données de champs de texte dans un formulaire Windows dans cette conception...

ADMINISTRATEUR
10/03/2016 à 11h50
"[email protégé];utilisateur=...
En général, il est préférable d'utiliser des propriétés plutôt qu'une telle chaîne, comme dans cet article, ou la méthode String.Format()

OLGA2203
15/05/2017 à 20h14

String Connect = "Serveur=127.0.0.1;Port=3306;Base de données=base;Source de données=localhost;user=root;"; MySqlConnection con = new MySqlConnection(Connect); con.Open(); //Établit une connexion à la base de données. MySqlCommand cmd = new MySqlCommand(); cmd.CommandText = @”INSERT INTO tovar(ID,Category,Name,TradeMark,Price,Photo,Size,Color,Material,Count) VALEURS (@pr, @Category, @Name, @TradeMark, @Price, @Photo, @Taille, @Couleur, @Matériau, @Compte) » ; cmd.Parameters.AddWithValue("@pr",counter); cmd.Parameters.AddWithValue("@Category", comboBox1.SelectedItem.ToString()); cmd.Parameters.AddWithValue("@Name", textBox1.Text); cmd.Parameters.AddWithValue(« @TradeMark », textBox2.Text); cmd.Parameters.AddWithValue("@Price", Convert.ToInt32(textBox4.Text)); cmd.Parameters.AddWithValue("@Photo", textBox3.Text); cmd.Parameters.AddWithValue("@Size", textBox6.Text); cmd.Parameters.AddWithValue("@Color", textBox5.Text); cmd.Parameters.AddWithValue("@Matériel", textBox8.Text); cmd.Parameters.AddWithValue("@Count", Convert.ToInt32(textBox7.Text)); cmd.Connection = con; cmd.ExecuteNonQuery(); MessageBox.Show("L'ajout a réussi", "L'ajout a réussi", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

L'erreur "La colonne 'ID' ne peut pas être nulle" s'affiche, je supprime l'ajout à la colonne ID - la même chose est écrite pour la colonne suivante, etc.
Si j'entre des valeurs constantes entre parenthèses dans VALEURS, la ligne est ajoutée à la base de données.
Dites-moi, s'il vous plaît, quel est le problème ? Je dois enregistrer exactement les données et les valeurs saisies via le formulaire dans la base de données

Tous les modules d'un site ou d'une application web où il est nécessaire de saisir et d'enregistrer certaines données (par exemple, nom, âge, adresse, etc.) utilisent une fonction simple en langage mysql INSERT INTO `name_base` (nom, valeur1, valeur2 ) VALEURS ('Vasya ','1','2');

Toutes les variables sont saisies dans la base de données selon les valeurs que nous avons définies dans les premières parenthèses. Il est important de prendre en compte le codage du script du gestionnaire, de la base de données et du fichier de configuration. Il est conseillé d'utiliser le codage UTF-8 le plus courant.

Veuillez noter que vous pouvez écrire dans la base de données de deux manières.

Première façon si nous ne précisons pas initialement les noms de cellules des tables de la base de données. Ensuite, nous devons lister toutes les variables pour chaque cellule, à savoir le nombre de cellules dans la table de la base de données, donc de nombreuses variables doivent être répertoriées entre parenthèses après la valeur VALUE.

Par exemple:
Il y a quatre cellules dans une table de base de données. Cela signifie qu'après l'élément VALUE (..), les quatre variables doivent être répertoriées entre parenthèses. Et encore une chose : si la variable n'existe pas, disons que c'est un paramètre facultatif. Ensuite, nous écrivons simplement une valeur vide entre guillemets '',

"INSÉRER DANS LES VALEURS `name_base` (NULL, `".$name."`,``,`2`)"; // la troisième valeur vide est écrite entre guillemets

Mais cette demande présente quelques inconvénients mineurs. Si vous ajoutez une ou deux cellules à une table de base de données, cette requête renverra une erreur. Car dans cette méthode, lister toutes les cellules de la requête est obligatoire.

Deuxième façon si après une requête INSERT INTO `name_base` (...), répertoriez toutes les cellules après le nom de la base de données. Un exemple a déjà été discuté ci-dessus. Si vous avez oublié, réécrivons-le :

"INSERT INTO `name_base`(`name`,`value`,`value2`) VALUES (NULL, `".$name."`,``,`2`)";

Ici, nous avons répertorié toutes les cellules (name,value1,value2) . Et si vous ajoutez deux cellules supplémentaires à la table de la base de données, la syntaxe de la requête ne devra pas être modifiée. Mais à moins que nous devions ajouter immédiatement en une seule requête les variables supplémentaires dont nous avons besoin pour ces toutes nouvelles cellules créées.

Cette erreur survient très souvent après une petite modification sur le site. Disons que l'administrateur a ajouté une cellule supplémentaire à la base de données, disons le statut. Mais le processeur de script n'a pas eu le temps de changer de module, ou a tout simplement oublié. Mais certains sites ont une structure très complexe et trouver une erreur peut prendre beaucoup de temps et d'efforts. Par conséquent, il est conseillé d’utiliser la deuxième méthode d’écriture dans la base de données. Bien que ce type d'erreur soit plus souvent commis par les programmeurs Web débutants.

Entrée PHP dans la base de données MySQL. Exemples pratiques

Passons maintenant au cœur du problème lorsque nous travaillons avec des requêtes de base de données. Nous ferons tout en utilisant des exemples pratiques. Créons un script simple pour enregistrer les commentaires que les visiteurs du site laisseront.

Commençons par créer un tableau msg dans la base de données avec quatre cellules. Dans la première cellule, nous écrivons l'identifiant du commentaire. Le nombre de caractères dans une cellule peut aller jusqu'à dix caractères avec le paramètre d'incrémentation automatique. Ce paramètre automatique changera à chaque fois qu'un commentaire sera ajouté à +1.

La cellule suivante est le nom de l'utilisateur. Nombre de caractères - jusqu'à deux cents - trois cents caractères de votre choix, paramètre char. Ensuite, la cellule de commentaire - dans cette cellule, nous entrerons le texte du commentaire lui-même. Si vous souhaitez enregistrer des textes de commentaires volumineux, vous pouvez définir le paramètre texte - vous pouvez alors saisir simplement des textes énormes, plus de cinq cent mille caractères, ou définir le paramètre tinytext, alors un peu moins de caractères rentreront, mais ce sera le cas. travailler un peu plus vite.

Mais dans notre cas, nous garderons à l’esprit que les visiteurs n’écriront pas de gros textes. Et par conséquent, nous allons nous limiter et enregistrer deux mille caractères avec le paramètre varchar pour enregistrer les valeurs de chaîne.

Dans la dernière cellule, nous écrirons la date à laquelle le texte du commentaire a été enregistré. Nous écrirons au format numérique en secondes, en utilisant la fonction de la date et de l'heure actuelles time(); Pour plus de simplicité, nous définirons la fonction sur la variable $time=time(); Et créons une cellule dans la base de données. Appelons-le du même nom que time avec le paramètre int (pour les valeurs numériques). Notons le nombre de caractères - onze c'est mieux (avec une petite marge pour le futur :-).

Le dump de la base de données est le suivant :

Structure de la table `msg` -- CREATE TABLE IF NOT EXISTS `msg` (`id` int(10) NOT NULL AUTO_INCREMENT, `name` char(250) NOT NULL, `comment` varchar(2000) NOT NULL, `time` int(11) NON NULL, CLÉ PRIMAIRE (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Ça y est, un tableau de commentaires a été créé. Maintenant, nous écrivons un formulaire pour écrire un commentaire et le gestionnaire de script lui-même. Le code HTML du formulaire de commentaire est le suivant.

Et étant donné
. Maintenant, nous allons parler de la façon dont ajouter des images à la base de données MySQL via un formulaire en utilisant PHP.

Création d'un champ dans la base de données MySQL pour ajouter une image

Pour commencer, je veux dire que pour stocker des images dans une base de données MySQL Il est nécessaire de définir l'un des champs de la table comme dérivé du type BLOB.

L'abréviation BLOB signifie Binary Large Object. Le type de stockage de données BLOB propose plusieurs options :

  • TINYBLOB - Peut stocker jusqu'à 255 octets
  • BLOB peut stocker jusqu'à 64 kilo-octets d'informations
  • MEDIUMBLOB - jusqu'à 16 mégaoctets
  • LONGBLOB jusqu'à 4 gigaoctets

Pour stocker un fichier image dans une base de données vous devez lire le fichier dans une variable et créer une requête pour ajouter des données à la table.

Préparer un formulaire sur la page pour ajouter une image à la base de données MySQL

Dans mon cas, la tâche était ajouter deux images à la base de données via un formulaire utilisant PHP. Nous avons un formulaire avec deux champs et un bouton de soumission :

nom du formulaire=”form1″ méthode=”post” action=”add_image.php”
enctype="multipart/form-data"

Permettez-moi de vous rappeler que l'attribut action spécifie le fichier qui effectuera le chargement des fichiers image. Attribut enctype indique comment le contenu du formulaire est codé et les informations de téléchargement de fichiers. Voir comment remplir correctement l'attribut enctypeéviter .

Note: la prise en charge du téléchargement de plusieurs fichiers a été introduite dans la version 3.0.10.

Écrire du code PHP pour enregistrer une image dans une base de données MySQL

Puisque nous envoyons deux fichiers dans l'attribut nom après le mot nous indiquons « userfile » avec des crochets, cela indique clairement que nous envoyons plusieurs fichiers en utilisant un tableau contenant les attributs du fichier :

$_FILES['fichierutilisateur']['nom']

Le nom du fichier d'origine sur la machine client.

$_FILES['fichierutilisateur']['type']

Le type MIME du fichier, si le navigateur a fourni cette information.
Exemple : "image/gif" .

$_FILES['fichierutilisateur']['taille']

$_FILES['userfile']['tmp_name']

Nom de fichier temporaire sous lequel le fichier téléchargé a été enregistré sur le serveur.

Comment récupérer les valeurs de chaque fichier ?

Par exemple, supposons que des fichiers nommés /home/test/1.jpg et /home/test/2.jpg soient envoyés.

Dans ce cas, $_FILES['userfile']['name']
contiendra la valeur 1.jpg,
et $_FILES['userfile']['name']
- valeur 2.jpg

De même, $_FILES['userfile']['size'] contiendra la valeur de taille de fichier 1.jpg, et ainsi de suite. Regardons maintenant le code du fichier add_image.php, qui a été spécifié dans l'attribut form action.

1024*1024||$image_size==0) ( $ErrorDescription="Chaque image ne doit pas dépasser 1 Mo ! L'image ne peut pas être ajoutée à la base de données."; return ""; ) // Si le fichier est arrivé, vérifiez si le graphique // il (pour des raisons de sécurité) if(substr($_FILES["userfile"]["type"][$num], 0, 5)=="image") ( //Lire le contenu du fichier $image=file_get_contents($_FILES ["userfile"]["tmp_name"][$num]); //Échappe les caractères spéciaux dans le contenu du fichier $image=mysql_escape_string($image); return $image; )else( ErrorDescription= "Vous n'avez pas téléchargé d'image, elle ne peut donc pas être ajoutée."; return ""; ) )else( $ErrorDescription="Vous n'avez pas téléchargé d'image, le champ est vide, le fichier ne peut donc pas être ajouté à la base de données. "; return ; ) return $image; ) ?>

Donc, dans cet article, nous avons expliqué comment enregistrer une image dans une base de données MySQL , en utilisant PHP.

Dans cette leçon, nous apprendrons comment saisir les données saisies par l'utilisateur dans un formulaire dans une base de données MySql. Vous apprendrez comment vous connecter à une base de données MySql à partir du code d'une page Web, et comment traiter et saisir des données dans la base de données.


Dans la dernière leçon, je vous ai expliqué comment installer Denver sur votre ordinateur, comment créer votre propre base de données, un utilisateur pour celle-ci, comment créer une table dans la base de données et nous l'avons remplie avec un seul enregistrement.

Dans cette leçon, nous allons créer un document html pour saisir les informations utilisateur, ainsi qu'un fichier php qui gère ces informations, qui traitera les données, se connectera à la base de données MySql et y insérera de nouveaux enregistrements.

Passant des paroles aux actes, commençons.

Ajout de données utilisateur à la base de données MySql à partir d'une page Web

Première étape : créer un formulaire html pour la saisie des données

Dès le début, nous devons nous préparer à travailler avec PHP, MySql et à tester le code écrit sur l'ordinateur local. Pour ça:

1. Lancez Denwer sur votre ordinateur.

2. Ouvrez le disque virtuel créé par Denver (par exemple, le mien est le lecteur « Z »). Ouvrez-le, puis : home – localhost – www – créez-y un nouveau dossier et donnez-lui un nom (je le nommerai « db1 »).

3. Si vous travaillez dans Adobe Dreamweaver, allez dans le gestionnaire du site, cliquez là sur le bouton "Nouveau", sélectionnez le chemin d'accès au dossier nouvellement créé comme chemin, dans le champ ci-dessus vous pouvez donner un nom au site, puis cliquez sur Enregistrer – Terminé. Après tout cela, votre dossier apparaîtra dans le panneau de droite d'Adobe Dreamweaver.

1. Nous allons maintenant créer un fichier HTML standard (appelons-le info_form.html et l'enregistrer dans le dossier db1 nouvellement créé) et y écrire le code du formulaire pour saisir les informations. Dans notre table users de la base de données new_db, il y a 4 champs que l'utilisateur peut remplir (le champ id sera rempli automatiquement). Sur cette base, vous pouvez créer un code comme celui-ci :

Document sans titre












Ici dans le paramètre « action » de notre formulaire le fichier est enregistré formulaire.php. Ce sera le fichier de gestionnaire que nous créerons ensuite.

Créons également un fichier style.css pour styliser notre formulaire. Il est déjà inclus dans le code, il ne reste donc plus qu'à le créer, le placer dans le même dossier que le fichier html et y écrire le code suivant :

Corps (largeur : 400 px ; marge : 0 auto ; arrière-plan : #F8F4B6 ;) label (affichage : bloc ; flotteur : gauche ; largeur : 150 px ; remplissage : 0 10 px ; marge : 18px 0 0 ; alignement du texte : droite ;) # soumettre(float:right; margin:5px 50px 10px 0;)

Le formulaire ressemble maintenant à ceci :

Cependant, si vous saisissez des données et essayez de soumettre le formulaire, vous verrez une erreur, car aucun fichier form.php n'existe dans le répertoire des scripts.

La création d'un fichier de gestionnaire est notre prochaine tâche.

2. Entrons dans le dossier db1 créer un dossier avec le nom "scripts". Nous y enregistrerons tous nos scripts pour interagir avec la base de données MySql.

Une fois le dossier créé, créez un nouveau fichier php et enregistrez-le dans le dossier scripts sous le nom formulaire.php.

Mais avant de commencer à travailler directement sur le dossier de traitement de l'information, vous devez d'abord vous connecter à notre base de données. Je suggère de créer un fichier séparé pour cela et voici pourquoi :

Très probablement, dans votre projet, vous devrez vous connecter à la base de données MySql à partir de plusieurs fichiers. En règle générale, divers fichiers de projet interagissent avec la base de données.
Il est très peu pratique d'écrire le même code de connexion à la base de données dans chacun de ces fichiers. Et si, par exemple, il y a 50 fichiers de ce type et qu'un beau jour vous changez le mot de passe de l'utilisateur et vous devrez rechercher tous ces 50 fichiers et apporter une correction dans chacun d'eux.
Il est beaucoup plus pratique d'utiliser un fichier de connexion séparé, qui sera connecté à chacun des fichiers où il devrait y avoir une connexion à la base de données MySql. Dans ce cas, vous n’aurez qu’à apporter des corrections à un seul fichier.

Alors créons un nouveau fichier php, appelons-le connecter.php et placez-le dans le dossier du script. Nous y écrirons le code de connexion à notre base de données MySql, ainsi que le code qui signalera les erreurs si elles se produisent. Veuillez noter que comme paramètres vous devrez saisir votre nom d'utilisateur, votre mot de passe et le nom de votre base de données. L'hôte doit être localhost.

Erreur de connexion à la base de données ! " . mysql_error() . "

"); mysql_select_db("new_db")//paramètre entre parenthèses ("nom de la base de données à laquelle nous nous connectons") ou die("

Erreur de sélection de base de données ! ".mysql_error() ."

"); ?>

Passons maintenant au fichier form.php et incluons-y le fichier connect.php en utilisant le code suivant :

Si vous essayez de soumettre le formulaire maintenant, vous verrez une page Web vierge après l'avoir soumis. C'est normal, puisque nous venons de nous connecter à la base de données et que nous ne produisons rien d'autre pour le moment.

Si vous voyez un message d'erreur, vérifiez que tous les paramètres sont corrects (nom d'utilisateur, mot de passe, nom d'hôte : localhos, nom de la base de données), et assurez-vous également que votre Denver est activé.

3. Nous nous sommes connectés avec succès à la base de données MySql et nous avons maintenant besoin accepter les données saisies dans le formulaire dans notre gestionnaire de fichiers. Les attributs « nom » présents dans le document html nous y aideront.

Pour obtenir les données, nous utiliserons une variable php spéciale qui nous fournit toutes les informations du formulaire Web. Cette variable s'appelle « $_REQUEST ».

Écrivez le code suivant dans le fichier form.php après avoir connecté le fichier connect.php :

$prénom = $_REQUEST["prénom"]; $nom_dernier = $_REQUEST["nom_dernier"]; $email = $_REQUEST["email"]; $facebook = $_REQUEST["facebook"];

4. Nous avons reçu les données du fichier et les avons saisies dans des variables. Maintenant tu as besoin envoyer ces données à notre table de base de données MySql. Pour ce faire, vous devez écrire le code suivant ci-dessous :

$insert_sql = "INSERT INTO utilisateurs (prénom, nom, email, facebook)" . "VALUES("($first_name)", "($last_name)", "($email)", "($facebook)");"; mysql_query($insert_sql);

Ici, nous formulons d'abord une requête disant que nous devons insérer les variables correspondantes dans les champs correspondants de la table « utilisateurs ». Nous mettons cette requête dans la variable « $insert_sql ». Et puis en utilisant la fonction spéciale mysql_query, nous exécutons cette requête.

Si vous remplissez et soumettez maintenant le formulaire, puis regardez le tableau « utilisateurs » de votre base de données, vous verrez un nouvel enregistrement qui y apparaîtra après la soumission.

5. Nous avons inséré un nouvel enregistrement d'une page Web dans une table de base de données MySql. Je voudrais maintenant aborder un peu le format dans lequel nos données sont insérées.

Tout d'abord, vous devez faire attention au cas où une personne qui remplit un formulaire peut mettre des espaces inutiles au début de la saisie des informations. Ils doivent être coupés.

Deuxièmement, nous avons un champ Facebook. Si nous souhaitons ultérieurement afficher ces informations sous forme de lien, nous devons nous assurer que les données de ce champ sont stockées dans le format correct (c'est-à-dire « identifiant http://www.facebook.com/facebook »). Mais l'utilisateur ne saisira pas toujours ces données comme nous en avons besoin. Il peut saisir : « www.facebook.com/facebook id », « facebook.com/facebook id » ou simplement « /facebook id ».

Ces situations doivent être évitées. Pour ce faire, ajustons notre code. Nous allons réduire les éventuels espaces supplémentaires à l'aide de la fonction garniture, et la fonction vérifiera l'exactitude de l'URL saisie pour Facebook preg_match. Ainsi, l'intégralité du code du fichier form.php ressemblera à ceci :

Document sans titre Un nouvel enregistrement a été inséré dans la base de données !

"; ?>

À propos de la fonction preg_match:
Il s'agit d'une fonction de recherche avec des expressions régulières.

Le premier paramètre entre parenthèses est une expression régulière, le second est la chaîne où rechercher.

La fonction renvoie uniquement la première correspondance : 0 – s'il n'y a pas de correspondance, 1 – s'il y a une correspondance.

Essayez maintenant de remplir intentionnellement le formulaire en créant des espaces inutiles au début du remplissage de l'un des champs et en saisissant l'adresse Facebook sans http:// ou même en saisissant uniquement l'identifiant Facebook. Envoyez une demande, puis accédez à la base de données et vous verrez que, malgré un remplissage pas tout à fait correct, les données ont exactement la forme dont nous avons besoin.

C'est ici que je terminerai cette leçon. Vous pouvez télécharger tous les fichiers de cette leçon en code source (n'oubliez pas de modifier les paramètres par les vôtres dans le fichier connect.php).

Et dans la prochaine leçon, nous apprendrons comment extraire des informations d'une base de données MySql, sélectionner les enregistrements nécessaires et les afficher à l'écran. Afin de ne pas manquer la prochaine leçon, abonnez-vous aux mises à jour du blog en utilisant le formulaire d'abonnement que vous voyez ci-dessous.

Laissez vos commentaires et partagez-les avec vos amis en utilisant les boutons des réseaux sociaux.

Bonne chance et à bientôt pour le prochain cours !

gastrogourou 2017