Ajouter des données à la table PHP SQL. Enregistrement PHP dans la base de données MySQL. Exemples pratiques. Économiser l'entrée personnalisée dans la base de données

Dans cette leçon, nous apprendrons à entrer MySQL dans la base de données, les données saisies par l'utilisateur dans le formulaire. Vous apprendrez à vous connecter à la base de données MySQL à partir du code de page Web, ainsi que de processus et de rendre les données à la base de données.


Dans la dernière leçon, je vous ai dit comment installer Denver sur votre ordinateur, comment créer votre base de données, votre utilisateur, comment créer une table dans la base de données et nous l'avons renseignée avec une entrée.

Dans cette leçon, nous créerons un document HTML pour entrer des informations utilisateur, ainsi qu'un processeur de fichiers PHP de ces informations qui traitera des données de connexion à la base de données MySQL et d'insérer de nouveaux enregistrements.

Se retourner des mots au cas commençons.

Ajouter des données personnalisées à la base de données MySQL à partir de la page Web

Première étape: créer formulaire HTML Pour la saisie de 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. Exécutez Denwer sur votre ordinateur.

2. Ouvert disque virtuel, Créé par Denver (par exemple, j'ai un disque "Z"). Ouvert plus loin: Accueil - Localhost - www - Créer là-bas nouveau dossier Et lui donner le nom (je donnerai le nom "db1").

3. Si vous travaillez dans Adobe Dreamweaver, allez ensuite sur le gestionnaire de site, cliquez sur le bouton "Nouveau", sélectionnez le chemin d'accès au dossier nouvellement créé comme moyen, vous pouvez donner un nom à la sauvegarde - Terminé. Après tout cela, votre dossier apparaîtra dans le volet de droite d'Adobe Dreamweaver.

1. Maintenant nous allons créer l'habituel fichier html. (Je vais appeler it info_form.html et enregistrer dans le DB1 créé dans uniquement le dossier créé) et le code de code existant pour entrer des informations. Notre tableau utilisateur de la base de données New_DB comporte 4 champs que l'utilisateur pourrait remplir (le champ ID sera rempli automatiquement). Sur cette base, vous pouvez créer le code suivant:

Document sans titre










Ici dans le paramètre "action" de notre formulaire est le fichier enregistré form.php.. Ce sera un gestionnaire de fichiers que nous allons créer plus loin.

Créons toujours le fichier Style.css pour donner des styles à notre formulaire. Il est déjà connecté dans le code, il ne reste donc plus que de le créer, mettez-le dans le même dossier que le fichier HTML et enregistrez le code suivant:

Corps (largeur: 400px; Marge: 0 Auto; Arrière-plan: # F8F4B6;) Étiquette (Affichage: Bloc; Float: gauche; Largeur: 150px; Padding: 0 10px; Marge: 18px 0 0; Text-Align: Droite;) # Soumettre (flotteur: droite; marge: 5px 50px 10px 0;)

Maintenant, la forme ressemble à ceci:

Toutefois, si vous entrez les données et essayez d'envoyer le formulaire, vous verrez un bogue, car aucun fichier FORM.PHP mené dans le répertoire des scripts n'existe pas.

Créer un fichier de traitement est notre tâche suivante.

2. Soit dans le dossier db1 Créer un dossier appelé "Scripts". En cela, nous économiserons toutes nos scripts d'interaction 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. form.php..

Mais avant d'aller directement au fichier d'informations, vous devez d'abord vous connecter à notre base de données. Je suggère de créer un fichier séparé pour cela et c'est pourquoi:

Très probablement dans votre projet, vous devrez vous connecter à la base de données MySQL non seulement à partir d'un fichier. En règle générale, avec la base de données interagir divers fichiers Projet.
Il est très peu pratique dans chaque fichier de ce type de prescrire le même code de connexion à la base de données. Et si de tels fichiers, par exemple, auront 50 ans et un jour, vous modifiez le mot de passe de l'utilisateur et vous devrez rechercher tous ces 50 fichiers et dans chacun pour être corrigé.
Il est beaucoup plus pratique d'utiliser un fichier séparé pour vous connecter à chacun des fichiers où la connexion à la base de données MySQL doit être connectée. Dans ce cas, vous devrez effectuer des corrections que dans un seul fichier.

Alors créons un nouveau fichier PHP, appelons-le connect.php. Et mettre dans le dossier pour les scripts. En cela, nous écrivons le code de connexion avec notre base de données MySQL, ainsi que le code qui signalera des erreurs en cas de leur occurrence. Veuillez noter que comme paramètres, vous devez enregistrer votre nom d'utilisateur, votre mot de passe et votre nom de base de données. Comme un hôte devrait être localhost.

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

"); mysql_select_db (" new_db ") // paramètre entre parenthèses (" Nom de la base avec laquelle vous connectez ") ou mourir ("

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

"); ?>

Maintenant, allons au fichier form.php et connectez-y le fichier connexion.php à l'aide du code suivant:

Si vous essayez maintenant d'envoyer le formulaire, vous verrez après avoir envoyé une page Web vide. Ceci est normal, car nous venons de rejoindre la base et de ne rien prendre d'autre.

Si vous avez vu un message d'erreur, vérifiez l'exactitude de tous les paramètres (nom d'utilisateur, mot de passe, nom d'hôte: localhos, nom de la base de données) et détecter que votre Denver est activé.

3. Nous avons connecté avec succès avec la base de données MySQL, et maintenant nous avons besoin prenez les données saisies sous la forme de notre gestionnaire de fichiers. Cela nous aidera aux attributs «Nom» présents dans le document HTML.

Pour obtenir des données, nous utiliserons la spéciale variable PHPSupposant nous avec toutes les informations du formulaire Web. Cette variable s'appelle "$ _request".

Écrivez dans le fichier form.php après la connexion du fichier Connection.PHP, le code suivant:

$ premier_name \u003d $ _Request ["Nom"]; $ Last_name \u003d $ _Request ["Nom"]; $ email \u003d $ _request ["email"]; $ Facebook \u003d $ _Request [Facebook];

4. Nous avons reçu des données sur le fichier et nous avons répertorié les variables. Maintenant vous avez besoin envoyez ces données à notre table de base de données MySQL. Pour cela ci-dessous, vous devez enregistrer le code suivant:

$ insert_sql \u003d "Insérer dans les utilisateurs (Nom, Nom, Email, Facebook)". "Valeurs (" ($ ($ nom_name) "," ($ last_name) "," ($ e-mail) "," ($ Facebook) ");"; Mysql_query ($ insert_sql);

Ici, nous formons d'abord une demande, affirmant que nous devons insérer les variables correspondantes dans les champs correspondants de la table "Utilisateurs". Nous entrons dans cette demande à la variable "$ insert_sql". Ensuite, utilisez une fonction spéciale mysql_Query, nous exécutons cette demande.

Si vous remplissez maintenant et envoyez un formulaire, puis regardez la table «Utilisateurs» de votre base de données, vous verrez une nouvelle entrée qui y est apparue après l'envoi.

5. Nous avons inséré une nouvelle entrée de la page Web de la table de base de données MySQL. Maintenant, je veux toucher un peu du format dans lequel nos données sont insérées.

Premièrement, vous devez prendre soin de cette situation lorsqu'une personne remplissant le formulaire peut mettre des lacunes inutiles au début de la saisie d'informations. Ils ont besoin de couper.

Deuxièmement, nous avons un champ Facebook. Si nous voulons ensuite afficher ces informations sous forme de lien, il est nécessaire de veiller à ce que les données de ce champ soient stockées dans le format correct (c'est-à-dire "http://www.facebook.com/identifier sur Facebook ")). Mais l'utilisateur n'entrera pas toujours ces données comme nous en avons besoin. Il peut entrer: "www.facebook.com / facebook", "Facebook.com / Facebook sur Facebook" ou simplement "/ Identifiant sur Facebook".

Ces situations doivent être évitées. Pour ce faire, appliquez notre code. Épaissements supplémentaires supplémentaires que nous coupons avec une fonction garnitureet vérifiez que l'exactitude de l'URL entrée pour Facebook sera une fonction preg_match. Ainsi, l'ensemble du code du fichier Form.PHP ressemblera à ceci:

Document sans titre La nouvelle entrée est insérée dans la base de données!

"; ?>

À propos de la fonction preg_match:
Ceci est une fonction de recherche avec des expressions régulières.

Le premier paramètre entre crochets est une expression régulière, la seconde - une chaîne où vous devez rechercher.

La fonction ne renvoie que la première coïncidence: 0 - S'il n'y a pas de correspondance, 1 - S'il y a une coïncidence.

Essayez maintenant de remplir intentionnellement le formulaire en faisant des espaces inutiles au début de la remplacement de certains champs et d'entrer l'adresse de Facebook sans http: // ou en général, n'entrantant qu'un identifiant Facebook. Envoyez une demande, puis accédez à la base de données et vous verrez que malgré tout remplissage correctement correctement, les données ont exactement le type dont nous avons besoin.

À cela, je finirai cette leçon. Tous les fichiers de cette leçon que vous pouvez télécharger dans la source (n'oubliez pas de corriger les paramètres à votre fichier Connect.PHP).

Et dans la prochaine leçon, nous apprendrons à extraire des informations à partir de la base de données MySQL, à sélectionner les entrées souhaitées et à les afficher à l'écran. Pour ne pas ignorer la leçon suivante, abonnez-vous à la mise à jour du blog à l'aide du formulaire d'abonnement que vous voyez ci-dessous.

Laissez vos commentaires et partagez avec des amis à l'aide des boutons des réseaux sociaux.

Succès et à la réunion dans la prochaine leçon!

De l'auteur: Hein, vous ne pouvez pas jeter les chansons de chansons! Mais vous pouvez les supprimer, mettre à jour ou coller les autres. La principale chose est que les mots ont été apportés à la base de données. Aujourd'hui, nous indiquerons comment les données sont enregistrées dans MySQL et comment faire le droit de sonner la chanson!

Ajouter des entrées à l'aide de phpmyadmin

Dans la coquille PHPMYADMIN pour administrer une fonctionnalité «légère» mysql mundi implémentée nouveaux enregistrements Dans la table de base de données. En raison de sa simplicité, il est idéal pour les "théières" vertes et pour les professionnels «paresseux».

Être volé nouvelle information Le tableau devrait aller au programme en vertu des droits de l'administrateur. Ensuite, vous sélectionnez la base de données et la table souhaitées à gauche. Après cela, dans le menu supérieur, passez par l'élément "Coller".

Après cela, pour entrer dans la base de données MySQL, remplissez la fenêtre suivante pour toutes les colonnes du champ "Valeur" et appuyez sur "OK" ci-dessous.

Dans la capture d'écran ci-dessus, on peut voir que la table modifiable "Animaux" est composée de deux colonnes (champs): ID et nom. Dans la deuxième section, le type de chacune des colonnes est spécifié. Nous devons uniquement faire une valeur pour le champ Nom uniquement, car la colonne ID est la clé primaire, et pour cela, lors de la création d'une table, un autoincomder est défini. Cela signifie que la valeur du champ ID sera générée automatiquement par MySQL, ajoutant à la valeur numérique entier précédente 1.

Pour savoir ce que le champ Enregistrement de données dans MySQL est la clé principale (clé primaire), dans phpmyadmin, accédez au menu (avec la table sélectionnée à gauche dans la liste) dans l'onglet Menu supérieur de la "structure". Voici une description de tous les champs de terrain, de leur type et caractéristiques supplémentaires.

Insérer des données à l'aide de requêtes SQL

Mais phpmyadmin n'est qu'une coquille et les réels administrateurs "communiquent" avec le serveur MySQL en utilisant la langue des requêtes structurées. C'est-à-dire "parler" avec lui dans SQL. Puisque nous nous efforçons de devenir de véritables professionnels, alors un petit "plonge" dans l'étude des commandes SQL dans le sujet à l'étude. Voici une demande en entrant dans le champ "SQL", vous créerez la même base de données:

Créer un animal de table (ID IMOIDINT NON NULL Auto_Increment, Nom Char (30) Not NULL, Touche principale (ID));

Créer un animal de table (identifiant idianint non null auto_incrènement,

nom Char (30) Not NULL, clé primaire (ID));

Après avoir créé une table et enregistrer des données dans base de données MySQL (Via l'onglet "Coller", le programme vous informera que la ligne a été ajoutée aux animaux avec la valeur de l'identifiant 1. et le code de demande s'affiche légèrement dans la fenêtre de l'éditeur, qui nous a formé la coque et envoyé. le serveur de base de données.

Code requis:

Insérer dans `my_db1`.`animal` (` id`, `nom`) valeurs (," chat ");

Insérer dans `my_db1`. `animal` (` id`, `nom`) valeurs (," chat ");

Étudions-le plus en détail. Dans SQL, un opérateur d'insertion est utilisé pour insérer une nouvelle ligne sur la table. Il informe le serveur que dans la table de base de données (My_DB1. Animal) est nécessaire dans le champ ID et Name Insérez les valeurs spécifiées (valeurs (NULL, 'CAT').

Faites attention à la colonne ID que nous indiquons non une valeur numérique, mais NULL, car pour ce champ, nous «inclus» Autofill (auto-incrément).

Comment insérer un enregistrement avec PHP

Tout considéré par nous n'est qu'un "prélude" à l'action principale, qui va à la scène "Son Altesse" Server PHP Language de programmation. C'est grâce à lui que MySQL en tant que DBMS a reçu une telle distribution sur le réseau.
Le ligament de ces deux technologies Internet a construit la majeure partie du World Wide Web. D'où cherchez beaucoup, partout où vous les trouverez: dans les moteurs CMS modernes, "auto-écrits" et sur le serveur.

Il n'est pas surprenant que d'enregistrer des données dans MySQL PHP fournit autant de fonctionnalités intégrées. Mais nous nous concentrerons sur le plus important de cela. Voici un code qui ajoute un nouveau "animal" dans la table des animaux. Si vous essayez fort, vous pouvez collecter un surnom complet :)

$ Con_str \u003d mysql_connect ("localhost", "root", "", "db1"); Si (mysql_connect ("localhost", "root")) (echo "bonjour !!";) mysql_select_db ("DB1", $ CON_STR); $ Query_str \u003d "insert dans" db1`.`animal` (`id`" valeurs (nul`) (, "chien") "; Mysql_query ($ query_str); mysql_close ();

$ Con_str \u003d mysql_connect ("localhost", "root", "", "db1");

si (mysql_connect ("localhost", "root")) (

echo "Bonjour !!" ;

mysql_select_db ("DB1", $ CON_STR);

$ Query_str \u003d. "Insertion in` db1`.`animal` (` id`, `nom`) valeurs (," chien ")";

mysql_query ($ query_str);

mysql_close ();

Ce code doit être inséré dans fichier php Et placez-le sur le côté serveur.

Utilisation de la fonction MySQL_Connect (), nous vous connectons au serveur de base de données. données MySQL. En tant qu'argument, la fonction accepte l'hôte, le nom d'utilisateur du SGBD, le mot de passe et le nom de la base auquel vous devez vous connecter. Nous avons un mot de passe vide, car nous utilisons le serveur installé sur la machine locale (client).

Pour démontrer tous les exemples d'écriture décrits dans la base de données MySQL à l'aide de PHP, nous avons utilisé les gentiménologues à partir de Denver. Il comprend serveur local Apache, Server MySQL, PHPMYADMIN et quelques moyens plus utiles de création et de test du code de programme.

Ensuite, dans le bloc logique si nous avons vérifié la présence d'une connexion au serveur de base de données. Après cela, dans les fonctions mysql_select_db (), nous désignons la base à laquelle nous allons vous connecter. Utilisation de la fonction MySQL_Query (), vous avez lancé une requête SQL enregistrée dans la variable $ Query_str. Et à la fin fermée connexion installée (Mysql_close () fonction). Maintenant, si nous regardons dans votre propre animal (table d'animaux, vous trouverez un nouveau "animal" là-bas.

Pour l'écrire dans MySQL PHP "La courtoisie" a fourni à l'ensemble l'ensemble des fonctions requises. La principale chose est ce que les nouveaux arrivants "brûlures" lors de l'utilisation de SQL dans le code du programme constituent la rédaction incorrecte des demandes, la violation de la syntaxe et l'alternance de signes de blindage (citations).

Pour éviter l'apparition de cheveux «gris» inutiles sur votre tête, il est préférable de vérifier l'exactitude d'écrire une requête en utilisant phpmyadmin. Pour ce faire, placez le code SQL dans l'éditeur de programme et exécutez-le pour exécuter. Si quelque chose ne va pas, l'application démarrera "Swear", affichera une couleur rouge et indiquera l'emplacement de l'erreur.

Comme vous pouvez le constater, en utilisant MySQL, vous pouvez également collecter votre surnom, puis modifier correctement les mots de n'importe quelle "chanson". Et pour écrire à MySQL PHP Base convenable, nous vous conseillons d'avoir une amitié "close" avec ce "super" langage de programmation!

Dans ce guide, vous serez familiarisé avec la façon de commencer à gouverner la base de données de votre Php.scénario. Vous allez explorer ajout d'une entrée à la table MySQL,utilisant Code PHP. Avant de commencer, lisez nos autres manuels qui révèlent les principales étapes de travailler avec PHP et des bases de données - Connectez-vous de PHP à la base de données MySQL (anglais).

Avant de commencer, vérifiez la présence des éléments suivants:

  • Accès à votre panneau de commande d'hébergement

Étape 1 - Création d'une table

Tout d'abord, nous devons créer une table pour vos données. C'est une procédure très simple que vous pouvez faire dans phpmyadmin. De votre panneau de commande d'hébergement. Nous avons déjà décrit le processus de base de données MySQL dans le manuel précédent (anglais), nous allons donc ignorer ce moment ici.

Après se connecter à phpmyadmin, vous verrez une image similaire:

Créer une table intitulée Étudiants. Pour notre base de données u266072517_name.. Créer une nouvelle table peut être appelé Créer une table. Après cela, vous verrez nouvelle pageOù vous pouvez entrer toutes les données nécessaires à votre table:

C'est le moyen le plus simple de créer une table, pour plus d'informations sur la structure de la table / base de données et les paramètres peuvent être utilisés pour chaque domaine, reportez-vous à la documentation PHPMYADMIN formelle (anglais).

Voici quelques explications simples des champs que nous allons utiliser:

  • Nom. - C'est le nom de votre champ. Il sera affiché en haut de votre table.
  • Taper - Vous pouvez définir le type de champ ici. Par exemple, nous choisissons varchar.Parce que vous devez entrer ici une chaîne avec le nom (dans lequel il y a des lettres, pas des chiffres).
  • Longueur / valeurs. - Utilisé pour définir la longueur maximale de votre entrée dans ce champ.
  • Indice. - Nous utilisons l'indice principal de notre domaine "ID". Lorsqu'une table est créée, il est recommandé d'avoir un champ d'identification. Il est utilisé pour indexer des enregistrements dans le tableau lorsque les relations sont configurées entre les tables. On peut aussi noter ici "A_I"Quels moyens INCRÉMENTATION AUTOMATIQUE.. Ce paramètre augmentera automatiquement l'index (1,2,3,4 ...).

Cliquez sur Sauvegarder. Et votre table sera créée.

Étape 2 - Créez du code PHP et ajoutez une entrée à la table MySQL

Option 1 - Méthode MySQLI

Tout d'abord, vous devez établir une connexion de base de données, selon notre gestion précédente. Après cela, nous pouvons continuer avec la demande SQL d'ajouter une entrée à la table MySQL - Insérer.. Voici un code d'échantillon complet avec la méthode de connexion et d'insertion:

". mysqli_error ($ Connce);) mysqli_close ($ Connce);?\u003e

Ainsi, la première partie du code (chaîne 3 – 18 ) Affine une partie de l'établissement d'une connexion à la base de données. Nous ne réactivons pas cette partie si vous voulez savoir ce que chaque chaîne signifie, reportez-vous à notre gestion précédente comment se connecter à la base de données (anglais).

Commençons par la ligne 19 :

$ Sql \u200b\u200b\u003d "Insérer dans les élèves (nom, nom de nom, email) (" thom "," flacon "," [Email protégé]")";

C'est la ligne la plus importante du code, cela fait tout ce que nous décrivons dans ce manuel - l'ajout d'une entrée à la table MySQL à la base de données. INSÉRER DANS - Ceci est une expression qui ajoute une entrée à la table de base de données MySQL spécifiée. Dans notre exemple, nous ajoutons des données à la table Étudiants..

Se déplacer, entre parenthèses, nous définissons les champs de la table, les valeurs dans lesquelles nous allons ajouter: (Nom, Nom, email). Les données seront ajoutées dans une définition. Si on écrit (Email, nom, nom)Les valeurs seront ajoutées dans un ordre différent.

Partie suivante de la valeur Valeurs.. Ici, nous demandons nos valeurs dans les champs précédemment spécifiés. Ainsi, chaque champ obtiendra sa valeur. Par exemple, dans notre cas, ce sera quelque chose comme: nom \u003d Thom, lastname \u003d flacon, email \u003d [Email protégé] .

Ce qui est important de noter que nous formons requête SQLEn utilisant le code PHP. Les demandes SQL doivent être jointes dans des guillemets. Dans notre exemple, tout est entre citations et marcher après $ SQL \u003d Ceci est une requête SQL.

Partie suivante du code ( 20 – 22 Strings) exécute notre demande et vérifie le succès de l'exécution de la requête:

Si (mysqli_Query ($ Conn, $ SQL)) (echo "nouvel enregistrement créé avec succès";)

Un message sur la bonne chance est affiché si la demande est exécutée correctement.

Et la dernière partie ( 22 – 24 Les lignes) affichent un autre message, en cas d'exécution infructueuse de notre demande:

Sinon (echo "erreur:". $ SQL. "
". mysqli_error ($ Connce);)

Ce code affiche un message sur l'erreur, au cas où quelque chose s'est mal passé.

Option 2 - Méthode d'objet de données PHP (P HP D ATA O BJE)

Comme dans l'exemple précédent, nous avons d'abord besoin de vous connecter à la base de données, qui est effectué lors de la création d'un nouvel objet PDO - le guide précédent raconte comment cela se produit. Étant donné que la connexion à la base de données MySQL est un objet PDO, nous devons utiliser différentes méthodes PDO '(une sorte de fonctions faisant partie d'un objet spécifique) pour préparer et démarrer une requête. Les méthodes d'objets sont causées de cette manière:

$ The_Object-\u003e the_method ();

PDO vous permet de "préparer" code SQL avant son exécution. La requête SQL est calculée et ajustée avant de commencer. Donc, une simple attaque de Injection SQL Le code SQL remplissant peut être effectué dans le champ Formulaire. Par example:

// l'utilisateur écrit ceci dans le champ Nom d'utilisateur d'un formulaire de connexion THOM "; DROP BASE DE LA BASE DE BASE URDANTE_TABLE; // La requête finale devient ceci" SELECT * de user_table où username \u003d Thom "; Drop Base de données User_Table;

Puisque le code SQL est syntaxiquement correct, un point avec une virgule fait Drop Base de données user_table Nouvelle requête SQL et votre table utilisateur a été supprimée. Préparer des expressions Ne laissez pas les symboles et ; Pour compléter la demande source et les instructions Drop Base de données. Ne jamais exécuter.

Toujours Utilisez les requêtes préparées lorsque vous envoyez ou recevez des données de la base de données avec PDO.

Pour utiliser les expressions préparées, vous devez créer une nouvelle variable qui provoquera une méthode. préparer () À l'objet de la base de données.

Dans la forme correcte, le code ressemble à:

$ ServerName \u003d "mysql.hostinger.com"; $ Base de données \u003d "u266072517_name"; $ nom d'utilisateur \u003d "u266072517_user"; $ mot de passe \u003d "buystuffpwd"; $ Sql \u200b\u200b\u003d "mysql: host \u003d $ serveurName; dbname \u003d $ base de données;"; $ DSN_OPTIONS \u003d; // Créez une nouvelle connexion à la base de données MySQL à l'aide de PDO, $ my_db_connection est un objet essayer ($ my_db_connection \u003d nouveau PDO ($ SQL, $ nom d'utilisateur, $ mot de passe, $ DSN_OPTIONS); echo "Connecté avec succès";) Erreur) (Echo "Erreur de connexion:". $ ERROR-\u003e GETMessage ();) // Définissez les variables de la base de données $ $.NAME \u003d "THOM"; $ last_name \u003d "flacon"; $ email \u003d " [Email protégé]". Préparez des valeurs ("Insérer dans les élèves (nom, nom_name, e-mail) (: First_Name, Nom ,: e-mail)"); // Maintenant, nous disons au script que chaque espace porteur fait réellement l'utilisation de la méthode BindParam () / / Premier paramètre est l'espace réservé dans l'instruction ci-dessus - le deuxième paramètre est une variable qu'il doit faire référence à $ my_insert_statement-\u003e bindaram (: first_name, $ maternelle_name); $ my_insert_statement-\u003e bindaram (Nom, $ my_insert_statement -\u003e BindParam (: e-mail, e-mail $); // exécutez la requête en utilisant les données que nous venons de définir // la méthode exécutée () renvoie true si elle est réussie et false si ce n'est pas le cas échéant, vous permettant d'écrire vos propres messages ici Si ($ my_inser_statement-\u003e exécuter ()) (echo "nouvel enregistrement créé avec succès";) el SE (ECHO "Impossible de créer un enregistrement"; ) // À ce stade, vous pouvez modifier les données des variables et exécuter à nouveau pour ajouter plus de données à la base de données $.Name \u003d "John"; $ last_name \u003d "Smith"; $ email \u003d " [Email protégé]"; $ My_insert_statement-\u003e exécuter (); // exécuter à nouveau maintenant que les variables ont changé si ($ my_insert_statement-\u003e exécuter ()) (echo" nouvel enregistrement créé avec succès ";) d'autre (écho" incapable de créer un enregistrement "; )

Dans les lignes 28, 29 et 30, nous utilisons la méthode bindParam () Objet de base de données. Il y a aussi une méthode bindvalue ()différent de la précédente.

  • bindParam () -cette méthode compte les données lorsque la méthode exécuter () atteint. La première fois que le script vient à la méthode exécuter () Il voit ça $ premier_name. Fait référence à "Thom", connecte cette valeur et remplit la demande. Lorsque le script obtient la deuxième fois avant la méthode exécuter ()il ressemble $ premier_name. Fait maintenant référence à "John", connecte cette valeur et lance une nouvelle demande avec une nouvelle valeur. Il est important de comprendre que nous créons une demande une fois, remplacez ensuite différentes données dans différentes sections du script.
  • bindvalue () -cette méthode calcule les données dès que la file d'attente en vient. Comme la valeur $ premier_name. a été demandé comme "thom" au moment où nous atteignons la méthode bindvalue ()Il sera utilisé lorsque vous appelez la méthode Exécuter () pour $ My_insert_statement..

Notez que nous réutilisons la variable $ premier_name. Et nous lui demandons une nouvelle valeur pour la deuxième fois. Si vous vérifiez votre base de données après avoir démarré ce script, il y aura à la fois le nom spécifié, contrairement à cette valeur de la variable. $ premier_name.ce sera "John" à la fin de ce script. N'oubliez pas que PHP estime le contenu du script avant de le démarrer.

Si vous changez votre script remplaçant bindParam. sur le bindvalue.Vous allez ajouter le "Thom Flag" à la base de données MySQL deux fois à la base de données et John Smith sera ignoré.

Étape 3 - Vérifiez le succès de l'accomplissement et de la résolution de problèmes généraux

Si la requête que nous avons lancée dans la base de données MySQL a été réussie, nous verrons un tel message:

Résoudre les erreurs courantes

Mysqli.

Dans tout autre cas, un message d'erreur sera affiché à la place du message. Par exemple, disons une erreur syntaxique dans notre code et nous aurons ceci:

Comme on le voit, la première partie du code est en ordre, la connexion a été installée avec succès, mais notre requête SQL s'est collée avec une défaillance.

"Erreur: Insert dans les élèves (nom, valeurs de nom, courrier électronique) (" thom "," flacon "," [Email protégé]") Vous avez une erreur dans votre syntaxe SQL; Vérifiez le manuel correspondant à votre version MySQL Server pour la Syntaxe de droite à utiliser des valeurs à proximité" (nom, nom, courrier électronique) ("Thom", "FIAL", " [Email protégé]")" À la ligne 1 "

Une erreur de syntaxe est autorisée qui échoue dans l'exécution de notre script. L'erreur était ici:

$ Sql \u200b\u200b\u003d "Insérer dans les élèves (nom, nom de nom, email) (" thom "," flacon "," [Email protégé]")";

Comme vous pouvez le constater, nous utilisons des accolades frisées au lieu de rond. Il est incorrect et conduit à une erreur syntaxique dans notre script.

Pdo

Dans la ligne de connexion PDO 7, le mode de gestion des erreurs est défini sur 'Afficher toutes les exceptions' (Afficher toutes les exceptions). Si vous le supprimez du script et que la demande échouera, vous ne recevrez aucun message d'erreur. Avec les exceptions activées, des problèmes spécifiques découlant seront affichés. Fondamentalement, il est préférable d'utiliser lorsque vous développez un script, car cela peut identifier les noms de bases de données et de tables que vous souhaitez cacher à partir de quiconque peut obtenir un accès non autorisé à vos données. Dans le cas ci-dessus, lorsque les supports bouclés ont été utilisés au lieu de rond, l'erreur ressemble à celle indiquée ci-dessous:

Erreur fatale: Incaght Exception "PDOEXception" avec message "SQLSTATE: erreur de syntaxe ou violation d'accès: 1064 Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel qui correspond à votre version MySQL Server pour la bonne syntaxe à utiliser des valeurs à proximité "(nom, nom, email) (" thom "," flacon "," [Email protégé]")" À la ligne 1 "

Autres problèmes avec lesquels vous pouvez rencontrer:

  • Champs incorrectement spécifiés (champs inexistants ou erreurs dans les titres d'écriture).
  • Malconformité du type de type de champ. Par exemple, lorsque nous voulons affecter la valeur du nombre 47 Domaine Nom.Nous aurons une erreur car il est supposé que la valeur sera une chaîne. Mais si vous spécifiez un numéro entre guillemets, par exemple, “47” Il n'y aura pas d'erreurs, car notre numéro sera enregistré comme une chaîne dans ce domaine.
  • Une tentative de saisie de données dans une table qui n'existe pas ou une erreur par écrit le nom de la table.

Toutes ces erreurs peuvent être corrigées après des manuels de correction d'erreur ou la vérification du journal des erreurs (anglais).

Après avoir ajouté des données, nous devons les voir dans notre base de données. Voici un exemple de table dans lequel nous avons ajouté nos données si vous regardez phpmyadmin..

Conclusion

Dans ce guide, vous avez étudié comment utiliser Code PHP pour ajouter une entrée à la table MySQLutilisant Mysqli. et Pdo. Également examiné les cas d'erreurs et de solutions communes. Savoir utiliser le code PHP à ajouter à la base de données MySQL est utile, que vous appreniez à programmer ou à créer votre site Web.

Dans cet article, nous examinerons comment utiliser PHP pour insérer des lignes dans la base de données MySQL.

Étape 1 - Création d'une table

Vous devez d'abord créer une table pour les données. Il s'agit d'une procédure simple qui peut être effectuée à l'aide de phpmyadmin dans le panneau de commande d'hébergement.

Après avoir entré PHPMYADMIN, vous verrez une telle interface:

Créez une table avec le nom de l'étudiant dans la base de données U266072517__Name en cliquant sur le bouton "Créer une table". Après cela, nous verrons une nouvelle page sur laquelle vous spécifiez tous les paramètres nécessaires de la table:

C'est le plus configuration simplequi peuvent être utilisés pour une table et plus d'informations sur la structure des tables / bases de données.

Paramètres de colonne:

  • Le nom est le nom de la colonne affichée en haut de la table.
  • Type - Type de colonne. Par exemple, nous avons choisi Varchar parce que nous entrerons des valeurs de chaîne.
  • Longueur / valeurs - Utilisé pour indiquer la longueur maximale, qui peut être enregistrée dans cette colonne.
  • Index - Nous avons utilisé l'index "primaire" pour le champ "ID". Lors de la création d'une table, il est recommandé d'appliquer une seule colonne en tant que clé primaire. Il est utilisé pour répertorier les entrées dans la table et est requise lors de la configuration de la table. J'ai également noté "A_I", ce qui signifie "incrément automatique" - le paramètre d'affectation automatique de l'enregistreur (1,2,3,4 ...).
    Cliquez sur le bouton Enregistrer et la table sera créée.

Étape 2. Écrire un code PHP pour insérer des données dans MySQL.

Option 1 - Méthode MySQLI

Vous devez d'abord établir une connexion à la base de données. Après cela, utilisez la demande d'insertion SQL. Code d'échantillon complet:

". mysqli_error ($ Connce);) mysqli_close ($ Connce);?\u003e

La première partie du code (3 à 18 lignes) est conçue pour se connecter à la base de données.

Commençons par la ligne numéro 19:

$ Sql \u200b\u200b\u003d "Insérer dans les élèves (nom, nom de nom, email) (" thom "," flacon "," [Email protégé]")";

Il insère des données sur la base de données MySQL. Insérer dans est un opérateur qui ajoute les données à la table spécifiée. Dans notre exemple, les données sont ajoutées à la table des élèves.

Suivant est la liste des colonnes dans lesquelles les valeurs sont insérées: nom, nom, courrier électronique. Les données seront ajoutées dans l'ordre spécifié. Si nous écrivions (e-mail, nom, nom), les valeurs seraient ajoutées dans une autre commande.

La partie suivante est l'opérateur de valeurs. Ici, nous spécifions les valeurs des colonnes: Nom \u003d Thom, Nom \u003d flacon, email \u003d [Email protégé]

Nous avons lancé une demande en utilisant le code PHP. Dans le code de requête SQL doit être blindé avec des guillemets. La partie suivante du code (20-22 rangée) vérifie si notre demande a été réussie:

si (mysqli_Query ($ Conn, $ SQL)) (écho "nouveau recordcreatedsUCAEUDSUCCUNEDUITE";)

Ce code affiche un message sur la requête réussie.

Et la dernière partie (22 - 24 rangée) affiche la notification si la demande n'a pas réussi:

sinon (echo "erreur:". $ SQL. "
". mysqli_error ($ Connce);)

Option 2 - Méthode d'objet de données PHP (PDO)

Premièrement, nous devons vous connecter à la base de données en créant un nouvel objet PDO. Lorsque vous travaillez avec cela, nous utiliserons diverses méthodes PDO. Les méthodes d'objets sont provoquées comme suit:

$ The_Object-\u003e the_method ();

PDO vous permet de "préparer" le code SQL avant qu'il ne soit exécuté. La demande SQL est évaluée et «corrigée» avant le lancement. Par exemple, l'attaque la plus simple utilisant l'injection SQL peut être effectuée grâce à une simple introduction du code SQL dans le champ de formulaire. Par example:

Comme il est syntaxiquement correct SQL - Code SQL, un point de virgule fait une base de données Drop User_Table avec une nouvelle requête SQL, et la table personnalisée est supprimée. Les expressions préparées (variables associées) n'autorisent pas le point-virgule et le point de citation pour compléter la demande source. Par conséquent, la commande de base de données DROP ne sera jamais exécutée.

Pour utiliser les expressions préparées, vous devez écrire une nouvelle variable qui appelle la méthode PREPARY () de l'objet de la base de données.

Code correct:

getMessage (); ) // Définissez les variables de la personne que nous souhaitons ajouter $.Name \u003d "thom" à la base de données; $ last_name \u003d "flacon"; $ email \u003d " [Email protégé]". Dans les élèves ("Nom, nom de nom de nom de nom (e-mail) (: first_name,: Last_Name ,: e-mail)"); // Maintenant, nous spécifions le script, quelle variable fait référence à chaque espace réservé à utiliser la méthode BindParam (). Premier paramètre est une charge dans l'opérateur ci-dessus, la seconde est une variable à laquelle il doit renvoyer $ my_insert_statement-\u003e bindaram (: first_name, $ maternelle_name); $ my_insert_statement-\u003e bindaram (: $ nom_name); $ my_insert_statement-\u003e Bindaram (: e-mail, e-mail $); // exécutez une requête en utilisant les données qui vient d'être déterminée // exécuter () renvoie true si elle est réussie et false, sinon, vous permettant la possibilité d'afficher votre propre si Message ($ my_insert_statement-\u003e Execute ()) (ECHO "Nouveau Reco. rdcreatedsuctueusement "; ) Sinon (écho "Impossible de createrecord";) // À ce stade, vous pouvez modifier ces variables et exécuter la demande d'ajouter d'autres données aux données à la base de données $ $.NAME \u003d "JOHN". $ last_name \u003d "Smith"; $ email \u003d " [Email protégé]"; $ My_insert_statement-\u003e exécuter (); // exécutez à nouveau lorsque la variable est modifiée si ($ my_insert_statement-\u003e exécuter ()) (écho" nouveau recordcreatedsuctueusement ";) d'autre (écho" incapable de createrecord ";

Dans les lignes 28, 29 et 30, nous utilisons la méthode BindParam () de l'objet de la base de données. Il existe également une méthode BindValue (), qui est très différente de la précédente.

  • bINDPARAM () - Cette méthode estime les données lorsque la méthode d'exécution est atteinte. Pour la première fois, lorsque le script atteint la méthode EXECUTE (), il voit que $ nom correspond à "thom". Lie ensuite cette valeur et démarre la demande. Lorsque le script atteint la méthode de la deuxième exécution (), il voit que $ le nom_d $ correspond maintenant à "John". Après cela connecte cette valeur et commence à nouveau une demande avec de nouvelles valeurs. Il est important de se rappeler que nous avons défini une fois la demande et la réutiliser avec différentes données à différents points du script.
  • bindvalue () - Cette méthode évalue les données dès que BindValue () est obtenue. Étant donné que pour $ premier_name, la valeur "Thom" a été définie sur Bindvalue (), elle sera utilisée à chaque fois que la méthode Execute () est appelée $ my_Insert_statement.
    Veuillez noter que nous réutilisons la variable $ de Nom $ et attribuons-la une nouvelle valeur pour la deuxième fois. Après avoir démarré le script dans la base de données, les deux noms seront spécifiés, malgré le fait que la variable $ de Name $ à la fin du script est "John". N'oubliez pas que PHP vérifie l'ensemble du script avant de l'exécuter.

Si vous mettez à jour le script pour remplacer BindParam sur BindValue, vous insérez deux fois dans la base de données «Thom Flac» et John Smith sera ignoré.

Étape 3 - Confirmation des problèmes de mise en œuvre et de résolution réussie

Si la requête pour insérer des lignes vers la base de données a été réussie, nous verrons le message suivant:

Éliminer les erreurs courantes

Mysqli.

Dans tout autre cas, un message d'erreur sera affiché. Par exemple, faites une erreur syntaxique dans le code et nous obtiendrons ce qui suit:

La première partie du code est en ordre, la connexion a été établie avec succès, mais la demande SQL n'a pas été adoptée.

"Erreur: Insert dans les élèves (nom, valeurs de nom, courrier électronique) (" thom "," flacon "," [Email protégé]") Vous avez une erreur dans votre syntaxe SQL; Vérifiez que le manuelTCorrespond à votre version de Server MySQL pour la page RightSyntax à utiliser à proximité" (nom, nom de nom, courrier électronique) ("Thom", "Vial", " [Email protégé]")" À la ligne 1 "

Une erreur de syntaxe a été faite qui a provoqué une panne de script. L'erreur était ici:

$ Sql \u200b\u200b\u003d "Insérer dans les élèves (nom, nom de nom, email) (" thom "," flacon "," [Email protégé]")";

Nous avons utilisé des supports bouclés au lieu de normal. Il est incorrect et le script a émis une erreur syntaxique.

Pdo

Dans la ligne 7 Connexions PDO pour le jeu de mode d'erreur "Afficher toutes les exceptions". Si une autre valeur est spécifiée et que la demande ne réussirait pas, nous ne recevrions aucun message d'erreur.

Ce paramètre ne doit être utilisé que lorsque vous développez le script. Lorsqu'il est activé, les noms de base de données et les tables peuvent être affichés qu'il est préférable de se cacher à des fins de sécurité. Dans le cas décrit lorsque, au lieu de parenthèses conventionnelles utilisées bouclé, le message d'erreur ressemble à ceci:

ERREUR FATAL: UNCAGHTEXCEPTION "PDOEXception" avec message "SQLSTATE: Erreur de syntaxe ou AccessViolation: 1064 Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuelTCORPORS à votre version de Server MySQL pour les valeurs de RightSyntax à utiliser à proximité "(nom, nommé, email) (" thom "," flacon "," [Email protégé]")" À la ligne 1 "

Autres problèmes possibles:

  • Les colonnes sont correctement indiquées (colonnes inexistantes ou erreurs d'orthographe dans leurs noms).
  • Un type de valeur est attribué une autre colonne de type. Par exemple, si vous essayez d'insérer le numéro 47 dans la colonne Nom, nous aurons une erreur. Dans cette colonne, vous devez utiliser une valeur de chaîne. Mais si nous avons signalé un numéro de citations (par exemple, "47"), cela fonctionnerait, car c'est une chaîne.
  • Tenter de saisir des données dans une table qui n'existe pas. Ainsi qu'une erreur d'orthographe admise dans le nom de la table.

Après une entrée de données réussie, nous verrons qu'ils sont ajoutés à la base de données. Vous trouverez ci-dessous un exemple d'une table dans laquelle les données ajoutées.

Tous les modules de site ou les applications Web où vous devez établir et écrire des données (par exemple, nom, âge, adresse, etc.) Utilisez une fonction simple dans la langue d'insertion MySQL dans «nom_base` (nom, valeur1, valeur2). ('Vasya', '1', '2');

Toutes les variables sont apportées dans la base de données en fonction des valeurs que nous avons spécifiées dans les premiers supports. Il est important de prendre en compte l'encodage du script, de la base de données et du fichier de configuration du processeur. Il est souhaitable d'utiliser le codage UF-8 le plus courant.

Il convient de garder à l'esprit que vous pouvez enregistrer dans la base de données de deux manières.

Première méthode Si nous ne spécifions pas les noms initiaux des tables de base de données. Ensuite, nous devons répertorier toutes les variables pour chaque cellule, à savoir combien de cellules de la table de base de données, de nombreuses variables doivent être répertoriées entre parenthèses après la valeur.

Par example:
Dans la table de base de données, quatre cellules. Ainsi, après l'élément de valeur (..), les quatre variables doivent être répertoriées entre parenthèses. Et un point de plus: si la variable n'existe pas, disons qu'il s'agit d'un paramètre facultatif. Ensuite, nous écrivons juste une valeur vide dans les citations '',

"INSERT IN" NAME_BASE` valeurs (NULL, "". $ Nom. "`, ``, "2`)"; // Troisième signification vide est écrit entre guillemets

Mais cette demande a de petites failles. Si vous ajoutez une cellule ou deux cellules à la table de base de données, cette demande renvoie l'erreur. Parce que dans cette méthode, la liste de toutes les cellules de la requête est requise.

Deuxième manière Si après l'insertion de la requête dans `name_base` (...), répertoriez toutes les cellules après le nom de la base de données. Un exemple est déjà considéré comme légèrement plus élevé. Si vous avez oublié, écrivez un re-:

"Insérer dans" nom_base` (n ° Name`, `valeur`" valeurs (NULL, `". $ NOM. "` ",` `," 2`) ";

Ici, nous avons répertorié toutes les cellules (nom, valeur1, valeur2). Et si vous ajoutez deux cellules supplémentaires à la table de base de données, la syntaxe de la requête ne doit pas être modifiée. Mais si nous n'avons pas besoin d'ajouter à la fois sur une demande, les variables les plus avancées dont nous avons besoin pour ces cellules nouvellement créées sont.

Cette erreur vole très souvent, après un petit changement sur le site. Supposons que l'administrateur a ajouté une cellule supplémentaire à la base de données, disons le statut. Et le gestionnaire de script n'a pas eu le temps de changer le module ou de l'avoir juste oublié le élémentaire. Mais certains sites ont une structure très complexe et beaucoup de temps et d'efforts peuvent aller à la recherche d'erreur. Par conséquent, il est souhaitable d'utiliser la deuxième méthode d'enregistrement vers la base de données. Bien que ce type d'erreurs permettent plus souvent des programmeurs Web novices.

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

Donc, maintenant, nous sommes arrivés à l'essence même lorsque vous travaillez avec des questions de base de données. Nous ferons tout dans des exemples pratiques. Créez un script simple pour enregistrer des commentaires qui quitteront les visiteurs sur le site.

Pour commencer, créez une table MSG dans une base de données à quatre cellules. Dans la première cellule écrivant un identifiant de commentaire. Le nombre de caractères dans une cellule est de jusqu'à dix caractères avec le paramètre auto-incrément. Ce paramètre automatique changera chaque fois que le commentaire est ajouté par +1.

Nom du nom suivant Nom d'utilisateur cellulaire. Le nombre de caractères - à deux cent trois cents caractères à votre choix, le paramètre de caractère. La cellule commode est alors pour rendre le texte de commentaire lui-même dans cette cellule. Si vous souhaitez enregistrer de gros textes de commentaires, vous pouvez définir le paramètre texte - vous pouvez simplement entrer dans les énormes textes, plus de cinq cent mille caractères ou définir le paramètre TinyText, puis il faudra un peu moins de caractères, mais il travaillera un peu plus vite.

Mais dans notre cas, nous garderons à l'esprit que les visiteurs n'écriront pas d'énormes textes. Et par conséquent, nous nous limiterons nous-mêmes et réparerons deux mille caractères avec le paramètre Varchar, pour enregistrer des valeurs de chaîne.

Dans la dernière cellule, nous écrirons la date de faire un commentaire d'enregistrement de texte. Nous écrirons dans un format numérique en quelques secondes en utilisant la date actuelle de la date et de la fonction temporelle (); Pour la simplicité, la fonction définira la Time $ Time () à la variable; Et créer une cellule dans la base de données. Nous appelons le nom de l'heure avec le paramètre INT (pour les valeurs numériques). Je prophétisée Le nombre de caractères est meilleur onze (avec une petite réserve pour l'avenir :-).

Donnée de la base de données Suivant:

Structure de la table `msg` msg Create Table (` int (10) Not NULL Auto_Increment, `Name` CHAR (250) NON NULL,` COMENT` VARCHAR (2000) NON NULL, `TIME` INT (11) NON NULL, PRIMAIRE Clé (`id``)) moteur \u003d MyISAM par défaut Charset \u003d utf8 auto_incrènement \u003d 1;

Tout, la table des commentaires créée. Maintenant, nous écrivons un formulaire pour écrire un commentaire et moi-même un gestionnaire de script. Les formulaires HTML -Code pour entrer un commentaire suivant.