TUTOS.EU

Insertion de données dans une base SQL en php

Comment insérer des données dans une base SQL MySql en PHP

Basiquement, un exemple de requête SQL pour insérer des données dans une base MySql

Insert Into `NomBaseDeDonnees`.`NomTable` (`NomChamp01`, `NomChamp02`) VALUES ('MaValeur texte', 3);
Lien vers le fichier : cliquez ici Copier le code

Ici un exemple d'insertion de données dans une table B depuis une table A.
Seul les données non présentent dans la table A seront insérées dans la table B.

Insert Into `NomBaseDeDonnees`.`NomTableCible` (`NomChamp01`) SELECT `NomChamp01` FROM `NomTableSource` WHERE `chdbpedx001`.`NomTableSource`.`NomChamp01` NOT IN (Select `NomChamp01` FROM `NomTableCible`);
Lien vers le fichier : cliquez ici Copier le code

Voici un exemple de code PHP complet pour insérer des données dans une base MySql

<!DOCTYPE html>
<HTML lang="fr">
	<HEAD>
		<meta charset="utf-8" />

		<LINK rel="stylesheet" type="text/css" href="../style.css">

		<title>Titre du site</title>
		<meta name="Description" content="Description du site"/>
		<meta name="author" content="Bob l'éponge" />
		<meta name="Keywords" content="a, b, c"/>
		
	</HEAD>

	<BODY>

	<?php

		//Tiré de http://www.siteduzero.com/informatique/tutoriels/les-magic-quotes-ou-guillemets-magiques/desactiver-les-magic-quotes
		//Cette option pour virer les magic quotes est importante lorsque l'on poste récupère des valeurs de champs Input et textarea faute de quoi par exemple C'est deviendra C\'est
		function stripslashes_r($var) // Fonction qui supprime l'effet des magic quotes
		{
			if(is_array($var)) // Si la variable passée en argument est un array, on appelle la fonction stripslashes_r dessus
			{
				return array_map('stripslashes_r', $var);
			}
			else // Sinon, un simple stripslashes suffit
			{
				return stripslashes($var);
			}
		}

		if(get_magic_quotes_gpc()) // Si les magic quotes sont activés, on les désactive avec notre super fonction ! ;)
		{
			$_GET = stripslashes_r($_GET);
			$_POST = stripslashes_r($_POST);
			$_COOKIE = stripslashes_r($_COOKIE);
		}


		//Définition des constantes
		define("SQLServerName","NomServeurMySQL");
		define("sqldbname","NomBaseDeDonnees");
		define("sqllogin","LoginSQL");
		define("sqlpass","MotDePasseSQL");
		
		$MaConnection = mysql_connect(constant('SQLServerName'),constant('sqllogin'),constant('sqlpass')); //Création de la connexion à la base de données
		if ($MaConnection) {
			mysql_select_db(constant('sqldbname'), $MaConnection); //Sélection de la base
			mysql_query("SET NAMES UTF8"); //On utilise le codage UTF8

			//Requete d'insertion simple
			$sqlrequest = "Insert Into `".constant('sqldbname')."`.`NomTable` (`NomChamp01`, `NomChamp02`)  VALUES ('MaValeur texte', 3);"; //3 est ici un exemple de numérique à insérer
			echo "$sqlrequest<br />\n"; //Affichage d'une ligne
			
			//Requete d'insertion en prenant des données contenues dans une table source qui n'existent pas dans une table cible
			//$sqlrequest = "Insert Into `".constant('sqldbname')."`.`NomTableCible` (`NomChamp01`) SELECT `NomChamp01` FROM `NomTableSource` WHERE `".constant('sqldbname')."`.`NomTableSource`.`NomChamp01` NOT IN (Select `NomChamp01` FROM `NomTableCible`);";
			//echo "$sqlrequest<br />\n"; //Affichage d'une ligne
			if (strlen($sqlrequest) > 0){
				$Resultat = mysql_query($sqlrequest, $MaConnection); //Passage d'une requête à la base de données
				if (!$Resultat) {die('Erreur sur la requête : ' . mysql_error());}
				else{ // Si la requête est bien passée
					$MonTexte = "L'insertion s'est bien passée";
					//if (mb_detect_encoding($MonTexte, 'UTF-8', true) === false) {$MonTexte = utf8_encode($MonTexte);} //Si le fichier qui contient le code n'est pas codé en utf-8, alors utilisé ce code pour que le message s'affiche correctement
					echo "$MonTexte<br />\n"; //Affichage d'une ligne
				}
			}
			mysql_close($MaConnection);
		}
		else{
			die('Connexion impossible : ' . mysql_error());
		}

	?>

	</BODY>
</HTML>
Lien vers le fichier : cliquez ici Copier le code

2