Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Syntax Falsch sehe fehler nicht

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von com1992, 9 April 2016.

  1. com1992

    com1992 Neuer Benutzer

    Hallo

    ich habe ein Arduino Board mit folgenden Datenbank Code

    Code:
    #include "SPI.h"
    #include "Ethernet.h"
    #include "sha1.h"
    #include "mysql.h"
    
    /* Setup for Ethernet Library */
    byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED  };
    IPAddress server_addr(52, 29, 239, 198);
    
    /* Setup for the Connector/Arduino */
    Connector my_conn; // The Connector/Arduino reference
    
    int temperaturePin = 0;
    char user[] = "sql7114427";
    char password[] = "9ERf1KU11C";
    
    void setup() {
      Ethernet.begin(mac_addr);
      Serial.begin(9600);
      delay(10);
      Serial.println("Connecting...");
      if (my_conn.mysql_connect(server_addr, 3306, user, password))
      {
          Serial.println("Query Success!");
      }
      else
        Serial.println("Connection failed.");
    }
    
    void loop() {
      addTempEvent();
    }
    
    //taken straight from the adruino circ-10 example
    float getVoltage(int pin){
    //return (analogRead(pin) * .004882814);
    return(1.0);
    }
    
    void addTempEvent()
    {
      //taken straight from the adruino circ-10 example
      float temperature = getVoltage(temperaturePin);
      //temperature = (((temperature - 0.5) * 100)*1.8) + 32;  //Fahrenheit
      temperature = (temperature - 0.5) * 100;
     
      //I'm sure there is a cleaner way to build this string
      char insert_sql[200] = "INSERT INTO sql7114427.temperature (id,temperature) VALUES (ID,";
      dtostrf(temperature,1,2, &insert_sql[64]);
      char* array3 = ")";
      strcat(insert_sql,array3);
     
      //Serial.println(insert_sql);
      delay(5000);
      my_conn.cmd_query(insert_sql);
      delay(10000);
    }
    
    Die Datenbank habe ich so hinzugefügt zu phpmyadmin

    Code:
    CREATE TABLE `temperature` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `temperature` float DEFAULT NULL,
      `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

    Hoster ist www.freemysqlhosting.net

    Ich bekomme immer den Fehler

    Connecting...
    Connected to server version 5.5.47-0ubuntu0.14.04.1
    Query Success!
    Error: 156 = 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 ')' at line 1.


    Woher kann das kommen?
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Da fehlt die schließende Klammer.
     
  3. akretschmer

    akretschmer Datenbank-Guru

    Btw.: du solltest ASAP Dein Passwort ändern ;-)
     
  4. com1992

    com1992 Neuer Benutzer

    char* array3 = ")";
    strcat(insert_sql,array3);

    //Serial.println(insert_sql);
    delay(5000);
    my_conn.cmd_query(insert_sql);


    Nach meiner Info kommt die ja hier.
    Das Passwort ist mir egal. Nur Testzwecken.

    Ich bin leider nur Elektroniker ohne Datenbank Kenntnissen.

    Kann mir bitte jemand helfen das einfach zu lösen anhand eines Beispiels.

    Ich finde im Internet keine einfachen Lösungen für arduino.

    Danke
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Ah, okay. Nun - so tief hab ich den Quältext nicht gelesen. Das ist dann auch eher Offtopic hier. Du solltest Dir das erzeugte Statement halt mal ausgeben lassen und schauen, ob es das ist, was Du erwartest.

    Das Du so einfach im Internet Zugangsdaten zu Deiner DB mitteilst ist riskant. Wenn Da jemand jetzt Unfug treibt bist Du derjenige, an den sich Dein Hoster zuerst wendet. Ich hab über 5 Jahre in der Branche gearbeitet (allerding nicht im Billig-Mass-Hosting), von daher kann ich vielleicht doch das etwas besser abschätzen als Du offenbar.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden