{"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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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>\n<\/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 class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 &ldquo;Primary&rdquo; pour notre champ &ldquo;ID&rdquo;. 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; &ldquo;<strong>A_I<\/strong>&ldquo;, qui signifie &ldquo;<strong>Auto Increment<\/strong>&ldquo;. Cela permet d&rsquo;&eacute;num&eacute;rer automatiquement les entr&eacute;es (1,2,3,4&hellip;).<\/li>\n<\/ul><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Il affiche simplement un message de r&eacute;ussite si la requ&ecirc;te que nous avons lanc&eacute;e a abouti.<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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>&ldquo;<\/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 class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                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.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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; &ldquo;Test&rdquo;, 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; &ldquo;John&rdquo;, 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; &ldquo;Test&rdquo; 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 class=\"wp-block-paragraph\">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; &ldquo;John&rdquo; &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 class=\"wp-block-paragraph\">Si vous mettez &agrave; jour le script pour remplacer <strong>bindParam<\/strong> par <strong>bindValue<\/strong>, vous ins&eacute;rerez dans MySQL &ldquo;Test Testing&rdquo; 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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2><p class=\"wp-block-paragraph\">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":1},{"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-PH","link":"https:\/\/www.hostinger.com\/ph\/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-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database\/","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},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/usar-php-insertar-datos-mysql\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/usar-php-insertar-datos-mysql\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/usar-php-insertar-datos-mysql\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-inserir-dados-no-mysql-com-php\/","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}]}}