{"id":7642,"date":"2020-08-13T15:39:06","date_gmt":"2020-08-13T15:39:06","guid":{"rendered":"https:\/\/blog.hostinger.io\/fr-tutoriels\/?p=7642"},"modified":"2024-09-18T20:49:40","modified_gmt":"2024-09-18T20:49:40","slug":"inserer-des-donnees-dans-une-table-mysql-php","status":"publish","type":"post","link":"\/fr\/tutoriels\/inserer-des-donnees-dans-une-table-mysql-php","title":{"rendered":"Comment ins\u00e9rer des donn\u00e9es dans une table MySQL via PHP"},"content":{"rendered":"<p>Dans ce tutoriel, vous apprendrez comment <strong>INS&Eacute;RER<\/strong> des donn&eacute;es dans une table MySQL via <strong>PHP<\/strong>. Vous pouvez utiliser deux m&eacute;thodes, MySQLi et PDO. Avant de commencer ce guide d&rsquo;insertion de donn&eacute;es MySQL via PHP, vous devez avoir acc&egrave;s &agrave; votre panneau de contr&ocirc;le d&rsquo;h&eacute;bergement.<\/p><figure class=\"wp-block-image size-full\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Speed-Up-Your-Website-FR.pdf\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/public\" alt=\"\" class=\"wp-image-41455\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-creation-d-une-table-mysql\">Cr&eacute;ation d&rsquo;une table MySQL<\/h2><p>Tout d&rsquo;abord, nous devons cr&eacute;er une table pour vos donn&eacute;es. Si vous en avez d&eacute;j&agrave; cr&eacute;&eacute; un, passez &agrave; la section suivante. La cr&eacute;ation d&rsquo;une table est un processus simple que vous pouvez faire avec <strong>phpMyAdmin<\/strong>, qui se trouve dans votre panneau de contr&ocirc;le d&rsquo;h&eacute;bergement.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"671\" height=\"253\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/03\/bases-de-donnes-PHP-My-Admin-hPanel.png\/public\" alt=\"phpMyAdmin sous les bases de donn&eacute;es de hPanel\" class=\"wp-image-21703\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/03\/bases-de-donnes-PHP-My-Admin-hPanel.png\/w=671,fit=scale-down 671w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/03\/bases-de-donnes-PHP-My-Admin-hPanel.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2023\/03\/bases-de-donnes-PHP-My-Admin-hPanel.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 671px) 100vw, 671px\" \/><\/figure><\/div><figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hostinger.com\/fr\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/public\" alt=\"\" class=\"wp-image-41467\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>Apr&egrave;s avoir ouvert une session sur votre page phpMyAdmin, vous devriez voir quelque chose de similaire &agrave; ceci :<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"817\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/phpmyadmin-hostinger.png\/public\" alt=\"Page principale de phpMyAdmin\" class=\"wp-image-7647\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/phpmyadmin-hostinger.png\/w=817,fit=scale-down 817w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/phpmyadmin-hostinger.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/phpmyadmin-hostinger.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/phpmyadmin-hostinger.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 817px) 100vw, 817px\" \/><\/figure><\/div><p>Nous allons cr&eacute;er une table nomm&eacute;e <strong>Etudiants<\/strong> pour notre base de donn&eacute;es <strong>u000000001_nom<\/strong>. Vous pouvez cr&eacute;er une nouvelle table en remplissant le champ <strong>Nom<\/strong> et en cliquant sur <strong>Ex&eacute;cuter<\/strong>. Ensuite, vous serez dirig&eacute; vers une nouvelle page o&ugrave; vous pourrez entrer toutes les informations n&eacute;cessaires &agrave; votre table :<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1350\" height=\"462\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/table-mysql-etudiants.png\/public\" alt=\"Table MySQL nomm&eacute;e Etudiants cr&eacute;&eacute;e dans MyPHPAdmin \" class=\"wp-image-7648\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/table-mysql-etudiants.png\/w=1350,fit=scale-down 1350w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/table-mysql-etudiants.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/table-mysql-etudiants.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/table-mysql-etudiants.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/table-mysql-etudiants.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1350px) 100vw, 1350px\" \/><\/figure><\/div><p>Comme il s&rsquo;agit d&rsquo;une configuration simple, pour plus d&rsquo;informations concernant la structure d&rsquo;une table\/base de donn&eacute;es et le type de param&egrave;tres que vous pouvez utiliser avec les colonnes, r&eacute;f&eacute;rez-vous &agrave; la documentation officielle de <a href=\"https:\/\/www.phpmyadmin.net\/docs\/\" target=\"_blank\" rel=\"noopener\"><strong>phpMyAdmin<\/strong><\/a>.<\/p><p>Pour l&rsquo;instant, voici quelques explications sur les colonnes que nous avons utilis&eacute;es :<\/p><ul class=\"wp-block-list\">\n<li><strong>Nom<\/strong> &ndash; C&rsquo;est le nom de votre colonne. Il sera affich&eacute; en haut de votre table.<\/li>\n\n\n\n<li><strong>Type<\/strong> &ndash; Il s&rsquo;agit de votre type de donn&eacute;es. Vous pouvez d&eacute;finir int, varchar, text, et bien d&rsquo;autres encore. Par exemple, nous avons choisi <strong>varchar<\/strong> parce que nous devons entrer un nom de type cha&icirc;ne de caract&egrave;res (qui utilise des lettres et non des chiffres).<\/li>\n\n\n\n<li><strong>Taille\/Valeurs<\/strong> &ndash; Cette option permet de sp&eacute;cifier la taille maximale que peut avoir votre entr&eacute;e dans cette colonne.<\/li>\n\n\n\n<li><strong>Index<\/strong> &ndash; Nous avons utilis&eacute; l&rsquo;index &laquo;&nbsp;Primary&nbsp;&raquo; pour notre champ &laquo;&nbsp;ID&nbsp;&raquo;. Lors de la cr&eacute;ation de la table, il est recommand&eacute; d&rsquo;avoir une colonne ID. Elle est utilis&eacute;e pour &eacute;num&eacute;rer les entr&eacute;es de la table et est requise lors de la configuration des relations de la table. Nous avons &eacute;galement marqu&eacute; &laquo;&nbsp;<strong>A_I<\/strong>&laquo;&nbsp;, qui signifie &laquo;&nbsp;<strong>Auto Increment<\/strong>&laquo;&nbsp;. Cela permet d&rsquo;&eacute;num&eacute;rer automatiquement les entr&eacute;es (1,2,3,4&hellip;).<\/li>\n<\/ul><p>Cliquez sur <strong>Enregistrer<\/strong> et votre table sera cr&eacute;&eacute;e.<\/p><h2 class=\"wp-block-heading\" id=\"h-code-php-pour-inserer-des-donnees-dans-une-table-mysql\">Code PHP pour INS&Eacute;RER des donn&eacute;es dans une table MySQL<\/h2><p>Vous pouvez utiliser deux m&eacute;thodes pour INS&Eacute;RER des donn&eacute;es dans votre base de donn&eacute;es MySQL. La m&eacute;thode PHP MySQLi et la m&eacute;thode PHP Data Object ou PDO.<\/p><h3 class=\"wp-block-heading\" id=\"h-methode-mysqli\">M&eacute;thode <a href=\"https:\/\/www.php.net\/manual\/fr\/book.mysqli.php\" target=\"_blank\" rel=\"noopener\">MySQLi<\/a><\/h3><p>Vous devez d&rsquo;abord &eacute;tablir une connexion &agrave; une base de donn&eacute;es. Ensuite, nous pouvons proc&eacute;der &agrave; la requ&ecirc;te MySQL <strong>INSERT<\/strong>. Voici un exemple de code PHP complet avec les m&eacute;thodes de connexion et d&rsquo;insertion de base :<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n$servername = \"mysql.hostinger.fr\";\n$database = \"u000000001_nom\";\n$username = \"u000000001_user\";\n$password = \"MotDePasse\";\n\/\/ Create connection\n$conn = mysqli_connect($servername, $username, $password, $database);\n\/\/ Check connection\nif (!$conn) {\n      die(\"&Eacute;chec de la connexion : \" . mysqli_connect_error());\n}\n \necho \"Connexion r&eacute;ussie\";\n \n$sql = \"INSERT INTO Etudiants (prenom, nom, email) VALUES ('Test', 'Testing', 'Testing@tesing.com')\";\nif (mysqli_query($conn, $sql)) {\n      echo \"Nouveau enregistrement cr&eacute;&eacute; avec succ&egrave;s\";\n} else {\n      echo \"Erreur : \" . $sql . \"&lt;br&gt;\" . mysqli_error($conn);\n}\nmysqli_close($conn);<\/pre><p>La premi&egrave;re partie du code (lignes <strong>3<\/strong> &ndash; <strong>18<\/strong>) est destin&eacute;e &agrave; la <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/connecter-php-base-donnees-mysql\">connexion &agrave; la base de donn&eacute;es<\/a>. Nous ne reviendrons pas sur cette partie.<\/p><p>Commen&ccedil;ons donc par la ligne num&eacute;ro <strong>19<\/strong> :<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$sql = \"INSERT INTO Etudiants (prenom, nom, email) VALUES ('Test', 'Testing', 'Testing@tesing.com')\";<\/pre><p>Ceci est la ligne de code PHP la plus importante car elle ins&egrave;re des donn&eacute;es dans la base de donn&eacute;es MySQL. L&rsquo;instruction <strong>INSERT INTO<\/strong> permet d&rsquo;ajouter des donn&eacute;es dans la table de la base de donn&eacute;es sp&eacute;cifi&eacute;e. Dans cet exemple, nous ajoutons des donn&eacute;es dans la table <strong>Etudiants<\/strong>.<\/p><p>Ensuite, entre les parenth&egrave;ses, nous avons les noms des colonnes de la table sp&eacute;cifi&eacute;es &agrave; l&rsquo;endroit o&ugrave; nous voulons ajouter les valeurs : <strong>(prenom, nom, email)<\/strong>. Les donn&eacute;es seront ajout&eacute;es dans l&rsquo;ordre sp&eacute;cifi&eacute;. Si nous &eacute;crivions <strong>(email, nom, prenom)<\/strong>, les valeurs seraient ajout&eacute;es dans le mauvais ordre.<\/p><p>La partie suivante est la d&eacute;claration <strong>VALUES<\/strong>. Ici, nous sp&eacute;cifions nos valeurs &agrave; ins&eacute;rer dans les colonnes sp&eacute;cifi&eacute;es pr&eacute;c&eacute;demment. De cette fa&ccedil;on, chaque colonne repr&eacute;sente une valeur sp&eacute;cifique. Par exemple, dans notre cas, ce serait comme ceci : <strong>prenom<\/strong><strong>&nbsp;= Test<\/strong>, <strong>nom = Testing<\/strong>, <strong>email = Testing@testing.com<\/strong>.<\/p><p>Une autre chose qui vaut la peine d&rsquo;&ecirc;tre mentionn&eacute;e est que nous venons d&rsquo;ex&eacute;cuter une <strong>requ&ecirc;te SQL<\/strong> en utilisant du code PHP. Les requ&ecirc;tes SQL doivent &ecirc;tre plac&eacute;es entre les guillemets. Dans notre exemple, tout ce qui se trouve entre les guillemets et qui est &eacute;crit apr&egrave;s <strong>$sql =<\/strong> est une requ&ecirc;te SQL.<\/p><p>La partie suivante du code (lignes <strong>20<\/strong> &agrave; <strong>22<\/strong>) v&eacute;rifie si notre requ&ecirc;te a abouti :<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">if (mysqli_query($conn, $sql)) {\n     echo \"Nouveau&nbsp;enregistrement&nbsp;cr&eacute;&eacute;&nbsp;avec&nbsp;succ&egrave;s\";\n}<\/pre><p>Il affiche simplement un message de r&eacute;ussite si la requ&ecirc;te que nous avons lanc&eacute;e a abouti.<\/p><p>Et la derni&egrave;re partie (lignes <strong>22<\/strong> &agrave; <strong>24<\/strong>) affiche un message diff&eacute;rent au cas o&ugrave; notre requ&ecirc;te n&rsquo;a pas abouti :<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">else {\n     echo \"Erreur&nbsp;: \" . $sql . \"&lt;br&gt;\" . mysqli_error($conn);\n}<\/pre><p>Il nous fournira un message SQL d&rsquo;erreur au cas o&ugrave; quelque chose ne fonctionnerait pas.<\/p><h3 class=\"wp-block-heading\" id=\"h-methode-php-data-object-pdo\">M&eacute;thode <a href=\"https:\/\/www.php.net\/manual\/fr\/book.pdo.php\" target=\"_blank\" rel=\"noopener\">PHP Data Object<\/a> (PDO)<\/h3><p>Comme dans l&rsquo;exemple pr&eacute;c&eacute;dent, nous avons d&rsquo;abord besoin d&rsquo;une connexion &agrave; la base de donn&eacute;es, ce qui se fait en cr&eacute;ant un nouvel objet AOP &ndash; Comme la connexion &agrave; la base de donn&eacute;es MySQL est un objet PDO, vous devez utiliser diff&eacute;rentes <strong>m&eacute;thodes<\/strong> PDO (toute fonction faisant partie d&rsquo;un objet) pour pr&eacute;parer et ex&eacute;cuter les requ&ecirc;tes. Les m&eacute;thodes des objets sont appel&eacute;es ainsi :<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$the_Object-&gt;the_Method();<\/pre><p>PDO vous permet de <strong>pr&eacute;parer<\/strong> le code SQL avant qu&rsquo;il ne soit ex&eacute;cut&eacute;. La requ&ecirc;te SQL est &eacute;valu&eacute;e et <strong>corrig&eacute;e<\/strong> avant d&rsquo;&ecirc;tre ex&eacute;cut&eacute;e. Une attaque simplifi&eacute;e par injection SQL peut &ecirc;tre r&eacute;alis&eacute;e en tapant simplement du code SQL dans un champ d&rsquo;un formulaire. Par exemple :<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ L'utilisateur &eacute;crit ceci dans le champ utilisateur d'un formulaire de connexion\njohn\"; DROP DATABASE user_table;\n\/\/ The final query becomes this\n\"SELECT * FROM user_table WHERE utilisateur = john\"; DROP DATABASE user_table;<\/pre><p>Comme le code SQL est syntaxiquement correct, le point-virgule fait de <strong>DROP DATABASE user_table<\/strong> une nouvelle requ&ecirc;te SQL, et votre table utilisateur est supprim&eacute;e. Les instructions pr&eacute;par&eacute;es ne permettent pas aux caract&egrave;res <strong>&laquo;&nbsp;<\/strong> et <strong>;<\/strong> de terminer la requ&ecirc;te originale et l&rsquo;instruction malveillante <strong>DROP DATABASE<\/strong> ne sera jamais ex&eacute;cut&eacute;e.<\/p><p>\n\n\n<div><p class=\"important\">Vous devez <strong>toujours<\/strong> utiliser des d&eacute;clarations pr&eacute;par&eacute;es lorsque vous envoyez ou recevez des donn&eacute;es de la base de donn&eacute;es avec PDO.<\/p><\/div>\n\n\n\n<\/p><p>Pour utiliser les d&eacute;clarations pr&eacute;par&eacute;es, vous devez &eacute;crire une nouvelle variable qui appelle la m&eacute;thode <strong>prepare()<\/strong> de l&rsquo;objet de la base de donn&eacute;es.<\/p><p>Sur le code correct :<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n$servername = \"mysql.hostinger.fr\"; \n$database = \"u000000001_nom\"; \n$username = \"u000000001_user\"; \n$password = \"MotDePasse\";\n$sql = \"mysql:host=$servername;dbname=$database;\";\n$dsn_Options = [PDO::ATTR_ERRMODE =&gt; PDO::ERRMODE_EXCEPTION];\n\n\/\/ Create a new connection to the MySQL database using PDO, $my_Db_Connection is an object\ntry { \n  $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options);\n  echo \"Connexion r&eacute;ussie\";\n} catch (PDOException $error) {\n  echo '&Eacute;chec de la connexion : ' . $error-&gt;getMessage();\n}\n\n\/\/ Set the variables for the person we want to add to the database\n$first_Name = \"Test\";\n$last_Name = \"Testing\";\n$email = \"Testing@testing.com\";\n\n\/\/ Here we create a variable that calls the prepare() method of the database object\n\/\/ The SQL query you want to run is entered as the parameter, and placeholders are written like this :placeholder_name\n$my_Insert_Statement = $my_Db_Connection-&gt;prepare(\"INSERT INTO Etudiants (prenom, nom, email) VALUES (:first_name, :last_name, :email)\");\n\n\/\/ Now we tell the script which variable each placeholder actually refers to using the bindParam() method\n\/\/ First parameter is the placeholder in the statement above - the second parameter is a variable that it should refer to\n$my_Insert_Statement-&gt;bindParam(:first_name, $first_Name);\n$my_Insert_Statement-&gt;bindParam(:last_name, $last_Name);\n$my_Insert_Statement-&gt;bindParam(:email, $email);\n\n\/\/ Execute the query using the data we just defined\n\/\/ The execute() method returns TRUE if it is successful and FALSE if it is not, allowing you to write your own messages here\nif ($my_Insert_Statement-&gt;execute()) {\n  echo \"Nouveau enregistrement cr&eacute;&eacute; avec succ&egrave;s\";\n} else {\n  echo \"Impossible de cr&eacute;er l'enregistrement\";\n}\n\n\/\/ At this point you can change the data of the variables and execute again to add more data to the database\n$first_Name = \"John\";\n$last_Name = \"Smith\";\n$email = \"john.smith@email.com\";\n$my_Insert_Statement-&gt;execute();\n\n\/\/ Execute again now that the variables have changed\nif ($my_Insert_Statement-&gt;execute()) {\n  echo \"Nouveau enregistrement cr&eacute;&eacute; avec succ&egrave;s\";\n} else {\n  echo \"Impossible de cr&eacute;er l'enregistrement\";\n}<\/pre><p>Sur les lignes <strong>28<\/strong>, <strong>29<\/strong> et <strong>30<\/strong>, nous utilisons la m&eacute;thode <strong>bindParam()<\/strong> de l&rsquo;objet de la base de donn&eacute;es. Il existe &eacute;galement la m&eacute;thode <strong>bindValue()<\/strong> qui est tr&egrave;s diff&eacute;rente.<\/p><ul class=\"wp-block-list\">\n<li><strong>bindParam() &ndash;<\/strong> Cette m&eacute;thode &eacute;value les donn&eacute;es lorsque la m&eacute;thode <strong>execute()<\/strong> est atteinte. La premi&egrave;re fois que le script atteint une m&eacute;thode <strong>execute()<\/strong>, il voit que <strong>$first_Name<\/strong> correspond &agrave; &laquo;&nbsp;Test&nbsp;&raquo;, lie cette valeur et ex&eacute;cute la requ&ecirc;te. Lorsque le script atteint la deuxi&egrave;me m&eacute;thode <strong>execute()<\/strong>, il voit que <strong>$first_Name<\/strong> correspond maintenant &agrave; &laquo;&nbsp;John&nbsp;&raquo;, lie cette valeur et ex&eacute;cute &agrave; nouveau la requ&ecirc;te avec les nouvelles valeurs. Ce qu&rsquo;il faut retenir, c&rsquo;est que nous avons d&eacute;fini la requ&ecirc;te une fois et que nous l&rsquo;avons r&eacute;utilis&eacute;e avec des donn&eacute;es diff&eacute;rentes &agrave; diff&eacute;rents endroits du script.<\/li>\n\n\n\n<li><strong>bindValue() &ndash;<\/strong> Cette m&eacute;thode &eacute;value les donn&eacute;es d&egrave;s que la valeur <strong>bindValue()<\/strong> est atteinte. Comme la valeur de <strong>$first_Name<\/strong> a &eacute;t&eacute; fix&eacute;e &agrave; &laquo;&nbsp;Test&nbsp;&raquo; lorsque la m&eacute;thode <strong>bindValue()<\/strong> est atteinte, elle sera utilis&eacute;e chaque fois qu&rsquo;une m&eacute;thode <strong>execute()<\/strong> sera appel&eacute;e pour <strong>$my_Insert_Statement<\/strong>.<\/li>\n<\/ul><p>Notez que nous r&eacute;utilisons la variable <strong>$first_Name<\/strong> et donnons une nouvelle valeur &agrave; la deuxi&egrave;me fois. Si vous v&eacute;rifiez votre base de donn&eacute;es apr&egrave;s avoir ex&eacute;cut&eacute; ce script, vous avez les deux noms d&eacute;finis, bien que la variable <strong>$first_Name<\/strong> soit &eacute;gale &agrave; &laquo;&nbsp;John&nbsp;&raquo; &agrave; la fin du script. N&rsquo;oubliez pas que PHP &eacute;value un script entier avant de l&rsquo;ex&eacute;cuter.<\/p><p>Si vous mettez &agrave; jour le script pour remplacer <strong>bindParam<\/strong> par <strong>bindValue<\/strong>, vous ins&eacute;rerez dans MySQL &laquo;&nbsp;Test Testing&nbsp;&raquo; deux fois dans la base de donn&eacute;es et John Smith sera ignor&eacute;.<\/p><h2 class=\"wp-block-heading\" id=\"h-confirmer-la-reussite-et-resoudre-les-problemes-communs\">Confirmer la r&eacute;ussite et r&eacute;soudre les probl&egrave;mes communs<\/h2><p>Si la requ&ecirc;te que nous avons lanc&eacute;e et ins&eacute;r&eacute;e dans la base de donn&eacute;es MySQL a r&eacute;ussi, nous verrons le message suivant :<\/p><pre class=\"wp-block-preformatted\">Connexion r&eacute;ussie\nNouveau enregistrement cr&eacute;&eacute; avec succ&egrave;s<\/pre><h3 class=\"wp-block-heading\" id=\"h-depannage-des-erreurs-courantes\">D&eacute;pannage des erreurs courantes<\/h3><p>Toutefois, il arrive que le nouvel enregistrement comporte une erreur avec l&rsquo;insertion SQL. Mais ne vous inqui&eacute;tez pas, il existe plusieurs moyens de corriger ces erreurs MySQL.<\/p><h4 class=\"wp-block-heading\" id=\"h-mysqli\"><strong>MySQLi<\/strong><\/h4><p>Si un message d&rsquo;erreur MySQLi s&rsquo;affiche, nous pouvons proc&eacute;der de la mani&egrave;re suivante pour le corriger. Par exemple, faisons une erreur de syntaxe dans notre code, si nous le faisons, nous verrons quelque chose de similaire :<\/p><pre class=\"wp-block-preformatted\">Connexion r&eacute;ussie\nErreur : INSERT INTO Etudiants {prenom, nom, email} VALUES ('Test', 'Testing', 'Testing@testing.com')\nYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{prenom, nom, email} VALUES ('Test', 'Testing', 'Test@testingcom')' at line 1\"<\/pre><p>Comme vous pouvez le voir, la premi&egrave;re partie du code est bonne, la connexion a &eacute;t&eacute; &eacute;tablie avec succ&egrave;s, mais notre requ&ecirc;te SQL a &eacute;chou&eacute;.<\/p><pre class=\"wp-block-preformatted\">\"Erreur : INSERT INTO Etudiants {prenom, nom, email} VALUES ('Test', 'Testing', 'Testing@testing.com') You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{prenom, nom, email} VALUES ('Test', 'Testing', 'Test@testingcom')' at line 1\"<\/pre><p>Il y a une erreur de syntaxe qui, malheureusement, a provoqu&eacute; l&rsquo;&eacute;chec de notre script. L&rsquo;erreur se trouvait ici :<\/p><pre class=\"wp-block-preformatted\">$sql = \"INSERT INTO Etudiants {prenom, nom, email} VALUES ('Test', 'Testing', 'Testing@testing.com')\";<\/pre><p>Nous avons utilis&eacute; des crochets boucl&eacute;s au lieu de la simple parenth&egrave;se. Comme ce n&rsquo;est pas correct, notre script a commis une erreur de syntaxe.<\/p><h4 class=\"wp-block-heading\" id=\"h-pdo\">PDO<\/h4><p>Sur la ligne 7 de la connexion PDO, le mode d&rsquo;erreur est r&eacute;gl&eacute; pour <strong>afficher toutes les exceptions<\/strong>. Si cela n&rsquo;&eacute;tait pas indiqu&eacute; dans le script et que la requ&ecirc;te &eacute;chouait, vous ne recevriez aucun message d&rsquo;erreur. Lorsque les exceptions sont activ&eacute;es, le probl&egrave;me sp&eacute;cifique est affich&eacute;.<\/p><p>En r&egrave;gle g&eacute;n&eacute;rale, cette fonction ne doit &ecirc;tre utilis&eacute;e que lors du d&eacute;veloppement d&rsquo;un script car elle peut exposer les noms de la base de donn&eacute;es et des tables, que vous pr&eacute;f&eacute;rez peut-&ecirc;tre cacher &agrave; toute personne qui pourrait tenter d&rsquo;acc&eacute;der &agrave; vos donn&eacute;es de mani&egrave;re malveillante. Dans le cas ci-dessus o&ugrave; des accolades ont &eacute;t&eacute; utilis&eacute;es au lieu de parenth&egrave;ses, l&rsquo;erreur ressemble &agrave; ceci :<\/p><pre class=\"wp-block-preformatted\">Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; &lt;code&gt;check the manual that corresponds to your MySQL server version for the right syntax to use near '{prenom, nom, email} VALUES ('Test', 'Testing', 'Testing@testing.com')' at line 1\"&lt;\/code&gt;<\/pre><p><strong>Autres probl&egrave;mes possibles que vous pourriez rencontrer :<\/strong><\/p><ul class=\"wp-block-list\">\n<li>Colonnes incorrectes sp&eacute;cifi&eacute;es (colonnes inexistantes ou faute d&rsquo;orthographe).<\/li>\n\n\n\n<li>Un type de valeur &eacute;tant attribu&eacute; &agrave; un autre type de colonne. Par exemple, si nous essayons d&rsquo;attribuer un nombre <strong>47<\/strong> dans une colonne <strong>Nom<\/strong>, nous obtiendrons une erreur car il est cens&eacute; s&rsquo;agir d&rsquo;une valeur de type texte. Mais si nous avons attribu&eacute; un nombre entre guillemets, par exemple <strong>&ldquo;47&rdquo;<\/strong>, cela fonctionnerait parce que notre nombre serait attribu&eacute; comme une cha&icirc;ne de caract&egrave;res &agrave; la colonne.<\/li>\n\n\n\n<li>Tenter de saisir des donn&eacute;es dans un tableau qui n&rsquo;existe pas ou faire une faute d&rsquo;orthographe dans le tableau.<\/li>\n<\/ul><p>Toutes ces erreurs peuvent &ecirc;tre facilement corrig&eacute;es en suivant les directives relatives aux messages d&rsquo;erreur ou en consultant le journal des erreurs.<\/p><p>Apr&egrave;s une saisie r&eacute;ussie, les donn&eacute;es devraient &ecirc;tre ajout&eacute;es &agrave; notre base de donn&eacute;es. Voici un exemple de la table &agrave; laquelle nous avons ajout&eacute; nos donn&eacute;es lorsqu&rsquo;elle est vue depuis <strong>phpMyAdmin<\/strong>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"832\" height=\"534\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/insert-sql-phpmyadmin.png\/public\" alt=\"Donn&eacute;es phpMyAdmin ins&eacute;r&eacute;es dans MySQL &agrave; l'aide de PHP\" class=\"wp-image-7651\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/insert-sql-phpmyadmin.png\/w=832,fit=scale-down 832w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/insert-sql-phpmyadmin.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/insert-sql-phpmyadmin.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/08\/insert-sql-phpmyadmin.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 832px) 100vw, 832px\" \/><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2><p>Dans ce tutoriel, vous avez appris &agrave; <strong>INS&Eacute;RER<\/strong> des donn&eacute;es dans une table <strong>MySQL<\/strong> via <strong>PHP <\/strong>en utilisant <strong>MySQLi<\/strong> et <strong>PDO<\/strong>. Vous avez &eacute;galement appris &agrave; r&eacute;soudre les erreurs de connexion les plus courantes. Savoir comment utiliser PHP pour ajouter des donn&eacute;es dans une base de donn&eacute;es MySQL est utile, que vous appreniez &agrave; coder ou &agrave; cr&eacute;er votre site web.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans ce tutoriel, vous apprendrez comment INS&Eacute;RER des donn&eacute;es dans une table MySQL via PHP. Vous pouvez utiliser deux m&eacute;thodes, MySQLi et PDO. Avant de commencer ce guide d&rsquo;insertion de donn&eacute;es MySQL via PHP, vous devez avoir acc&egrave;s &agrave; votre panneau de contr&ocirc;le d&rsquo;h&eacute;bergement. Cr&eacute;ation d&rsquo;une table MySQL Tout d&rsquo;abord, nous devons cr&eacute;er une table [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/fr\/tutoriels\/inserer-des-donnees-dans-une-table-mysql-php\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Comment ins\u00e9rer des donn\u00e9es dans une table MySQL via PHP","rank_math_description":"Dans ce tutoriel, vous apprendrez comment ins\u00e9rer des donn\u00e9es dans une table MySQL via PHP en utilisant PDO ou MySQLi. Exemples de code inclus.","rank_math_focus_keyword":"inserer des donn\u00e9es dans une table mysql php","footnotes":""},"categories":[4809],"tags":[5586],"class_list":["post-7642","post","type-post","status-publish","format-standard","hentry","category-php","tag-inserer-des-donnees-dans-une-table-mysql-php"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/como-inserir-dados-no-mysql-com-php","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/inserer-des-donnees-dans-une-table-mysql-php","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/cara-input-data-ke-database-dengan-php","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-inserir-dados-no-mysql-com-php","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/7642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/comments?post=7642"}],"version-history":[{"count":10,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/7642\/revisions"}],"predecessor-version":[{"id":34631,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/7642\/revisions\/34631"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/media?parent=7642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/categories?post=7642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/tags?post=7642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}