Le
php pour communiquer avec MySQL
Nous ne savons pas poster directement nos mesures dans notre base de donnée MySQL.
Seul un serveur peut communiquer avec MySQL.
Aussi nous allons demander au serveur free à l'aide du script php ci-dessous de poster nos mesures dans la table souhaitée.
Il suffit alors à notre ESP01 d'envoyer la bonne adresse URL pour poster les mesures :
http://bts2m.free.fr/Wifi/sql.php?table=1&M1=1.1&M2=2.2&M3=3.3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <head> <title>Transfert SQL</title> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" /> <meta http-equiv="Expires" content="0" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <body> <?php // bts2m.free.fr/Wifi/sql.php?M1=1.1&M2=2.2&M3=3.3 // roupet.free.fr/informatique/mysql.php //--Connexion au serveur define("NOM","tpil.projet"); //nom = login chez free define("PASSE","MotDePasse"); // passe=votre mot de passe free define("SERVEUR","sql.free.fr"); // adresse du serveur free $link = mysql_connect(SERVEUR,NOM,PASSE); $table='mesures'; $titre='mesuresTitre'; if(!$link) {echo"Impossible de se connecter au serveur".mysql_error();exit;} else {echo "<h2>Connexion au serveur réussie !</h2>\n";} if (isset($_GET['table'])) { $titre='mesuresTitre'.$_GET['table']; $table='mesures'.$_GET['table']; echo "<p>Table : ".$table." Titre : ".$titre."</p>\n"; } if (isset($_GET['M1']) && isset($_GET['M2']) && isset($_GET['M3'])) { mysql_select_db($table,$link); $date = date("Y-m-d H:i:s"); // echo "<p>Date : ".$date."</p>\n"; $requete = "INSERT INTO ".$table." (`date`, `mesure1`, `mesure2`, `mesure3`) VALUES ('".$date."',".$_GET['M1'].",".$_GET['M2'].",".$_GET['M3'].");"; if (!mysql_query($requete, $link)) { echo "<p>Requête : ".$requete."</p>\n"; echo "<p>Echec insertion !\n".mysql_error()."</p>\n";exit;} $requete= "SELECT * FROM ".$table." ORDER BY `id` ASC"; $reponse=mysql_query($requete, $link); if (!$reponse) { echo "<p>Requête : ".$requete."</p>\n"; echo "<p>Echec lecture !\n".mysql_error()."</p>\n";exit;} $i=mysql_numrows($reponse)-1; mysql_data_seek($reponse,$i); $ligne=mysql_fetch_row($reponse);$Id= $ligne[0];$date = $ligne[1];$mesure1= $ligne[2];$mesure2= $ligne[3];$mesure3= $ligne[4]; $dateUnix= strtotime ($date); if (mysql_query($requete, $link)) { echo "<p>Date : ".$date."</p>\n"; echo "<p>Lignes : ".($i+1)." Id=".$Id."</p>\n"; echo "<p>Unix = ".$dateUnix." s</p>\n"; echo "<p>mesure1 = ".($mesure1)." USI</p>\n"; echo "<p>mesure2 = ".($mesure2)." USI</p>\n"; echo "<p>mesure3 = ".($mesure3)." USI</p>\n"; } else echo "<p>Echec d'insertion </p>\n<p>".mysql_error()."</p>;\n"; mysql_close($link); } else // Sinon, on affiche un message d'erreur {echo '<p>Pas de transmission</p><p>Rappel format : /Wifi/sql.php?table=2&M1=1.1&M2=2.2&M3=3.3</p>\n';} ?> </body> </html>