Arduino uno data to localhost database not working.

I have a arduino uno with an ESP8266. I am trying to send data from 2 sensors on my board to a database i created using xampp locally. I can send data to Thingspeak, but i cant seem to make my database insertion work. My code makes the String for the URL fine, i can copy it and insert it into my URL and it works. Bur arduino can't seem to send the url itself, even though it can send the thingspeak url. My php code is not the problem btw.

Code for my thingspeak that is working fine

void esp_8266()                                               // Programmet esp_8266
{
  String cmd = "AT+CIPSTART=\"TCP\",\"";                      // Laver en ny cmd string, med kommandoen "AT+CIPSTART=\"TCP\",\"
  cmd += "184.106.153.149";                                   // Tilføjer Thinkspeaks IP til cmd stringen
  cmd += "\",80";                                             // Tilføjer en port til cmd stringen
  esp8266.println(cmd);                                       // Kører cmd stringen på esp'en

   
  if(esp8266.find("Error"))                                   // Hvis esp'en finder en fejl..
  {
    Serial.println("AT+CIPSTART error");                      // ..Skriver den "AT+CIPSTART error" i serial monitoren..
    return;                                                   // ..og stopper programmet, og retunerer til der hvor den bliver kaldt
  }
  
  String getStr = "GET /update?api_key=";                     // Starter en getStr string og tilføjer "GET /update?api_key="
  getStr += apiKey;                                           // Tilføjer apiKey'en til getStr stringen
  getStr +="&field1=";                                        // Tilføjer "&field1=" til getStr stringen
  getStr += String(hum);                                      // Tilføjer fugtighed fra floaten hum til getStr stringen
  getStr +="&field2=";                                        // Tilføjer "&field2=" til getStr stringen
  getStr += String(temp);                                             // Tilføjer temperaturen fra floaten hum til getStr stringen
  getStr += "\r\n\r\n";                                               // Tilføjer en return, new line, return, new line kommando til getStr stringen

  cmd = "AT+CIPSEND=";                                                // Laver en ny cmd string, med kommandoen "AT+CIPSEND="
  cmd += String(getStr.length());                                     // Tilføjer længden på getStr til cmd'en
  esp8266.println(cmd);                                               // Skriver stringen cmd til esp'en og gør klar til at sende
Serial.println(cmd);

  if(esp8266.find(">"))                                               // Hvis den finder ">"..
  {
    esp8266.print(getStr); 
    Serial.println("Data sendt til Thingspeak");                      // ..så printer den stringen getStr og dermed sender stringen..
  }
  else                                                                // ..ellers..
  {
    esp8266.println("AT+CIPCLOSE");                                   // ..sender den beskeden "AT+CIPCLOSE" til esp'en og dermed stopper med at sende
    Serial.println("Fejl - Kunne ikke sende data til Thingspeak");    // Skriver "AT+CIPCLOSE" til serial monitoren, så man kan se den ikke fik sendt
  }
  delay(20000);                                                       // En pause på 20 sekunder, da Thinkspeak skal bruge 15 sekunders pause mellem hver besked

}

Code for my database, that is not working

void database()                                                       // Programmet esp_8266
{ 
  
  String cmd = "AT+CIPSTART=\"TCP\",\"";                            // Laver en ny cmd string, med kommandoen "AT+CIPSTART=\"TCP\",\"
  cmd += "127.0.0.1";                                               // Tilføjer Thinkspeaks IP til cmd stringen
  cmd += "\",80";                                                   // Tilføjer en port til cmd stringen
  esp8266.println(cmd);                                             // Kører cmd stringen på esp'en

   
  if(esp8266.find("Error"))                                           // Hvis esp'en finder en fejl..
  {
    Serial.println("DB NO CONNECTION");                               // ..Skriver den "AT+CIPSTART error" i serial monitoren..
    return;                                                           // ..og stopper programmet, og retunerer til der hvor den bliver kaldt
  }
  
  String getDB = "GET /inno/insertdata.php?";                         // Starter en getStr string og tilføjer "GET /update?api_key="
  getDB +="sensor=";                                                  // Tilføjer apiKey'en til getStr stringen
  getDB +="13";                                                       // Tilføjer "&field1=" til getStr stringen
  getDB +="&temperatur=";
  getDB += String(temp);                                              // Tilføjer fugtighed fra floaten hum til getStr stringen
  getDB +="&humidity=";                                               // Tilføjer "&field2=" til getStr stringen
  getDB += String(hum);                                               // Tilføjer temperaturen fra floaten hum til getStr stringen
  getDB += "\r\n\r\n";                                                // Tilføjer en return, new line, return, new line kommando til getStr stringen
                             
  cmd = "AT+CIPSEND=";                                              // Laver en ny cmd string, med kommandoen "AT+CIPSEND="
  cmd += String(getDB.length());                                    // Tilføjer længden på getStr til cmd'en
  esp8266.println(cmd); 
Serial.println(cmd);

    esp8266.print(getDB);
    esp8266.println("AT+CIPCLOSE");                                   // ..sender den beskeden "AT+CIPCLOSE" til esp'en og dermed stopper med at sende
       Serial.println("DB Sendt"); 
       Serial.println(getDB); 
       delay(10000); // Skriver "AT+CIPCLOSE" til serial monitoren, så man kan se den ikke fik sendt
  }                                                                  // En pause på 20 sekunder, da Thinkspeak skal bruge 15 sekunders pause mellem hver besked

127.0.0.1 is the address of the loopback connection

What do you mean by loopback connection? Its the ip adress i need to put in the url, to connect to the local database. Same as using localhost

localhost is a name of for the loopback IP. You need the real IP address on network.

Ohhh i see what you mean... So i need to use something like. 192.168.0.15? The ip adress from my cmd-ipconfig.

Thanks for the answers btw. Can you see any other flaws in the code? :slight_smile:

I do not like AT commands. I use WiFi Link. I recently modified it for use with generic esp8266. You want to try?

Yea i know AT commands is a bitch to make. But i had to do the assignment with AT commands for a school project sadly :confused:

Anyone know how to send data to database with AT commands?

do you now how to do it on a computer from python, java or c#?

on arduino try it at first with the WiFiEsp library, then see what AT commands uses