Fehler in der Datenbank (1065 Query was empty)

Xching

Erfahrenes Mitglied
Wer könnten mir weiter helfen. Mein Problem ist, dass ich der Datensatz nicht eingefügt könnte.
 
Zuletzt bearbeitet:
Also mal abgesehen davon das der Code nicht formatiert ist ([ PHP ] [ /PHP ]), ist die SQL-Anweisung ja auch gekürzt und das die Tabelle wirklich "table_name" heißt, kann ich nicht glauben. Eine Variable die den eigentlichen Namen enthält ist es aber auch nicht.

So wie es jetzt ist, kann dir nur schwer oder eher gar nicht geholfen werden.

Auf jeden Fall würde ich mal die führende und die abschließende runde Klammer bei "sqladd = " weglassen.
 
Und wieder mal ein Fall für:

Die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.

PHP MySQL Debug Queries

Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
Hallo, ich schick ihnen ganze Programme, ich hoffe ,dass sie mir weiter helfen können.
Danke für ihre Antwort
 
Zuletzt bearbeitet:
// Edit: Oha, da war ich ja viel zu langsam :D Meine Antwort sollte aber noch stimmen ;)

Hallo und herzlich Willkommen hier bei tutorials.de :)

PHP:
 $knr=0;
  if ($knr>0) {
    // ...UPDATE TAB SET col1=5,col2="test" where  kennummer=4711
    $sqladd='';
    foreach ($data as $fieldname => $value ) {
      $sqladd.=sprintf("%s %s='%s'",$sqladd==''?'':',',$fieldname,$value);
    }
    $sql=sprintf("UPDATE %s SET %s WHERE kennummer=%d ",$tabelle,$sqladd,$knr);
     //echo $sql."\n";
    $oid=mysql_query($sql,$dbid);
    my_error($dbid,$sql);
  } else
// Ab hier habe ich Probleme
$sqladd =("INSERT INTO table_name(vkanal_nr,vkanal_name1,...) VALUES ('2','Tus Celle',...)");
 $oid=mysql_query($sql,$dbid);  my_error($dbid,$sql);
Desweiteren ist deine Fehlerbeschreibung eher sehr mager gehalten ;)

Wenn man deine Fehlermeldung übersetzt heißt das so viel wie "Die Abfrage war leer (und wurde deshalb ignoriert)". Auf deinen Code angewandt heißt das, dass du der mysql_query() einen leeren String oder eine nicht existierende Variable als Abfrage übergeben hast.

Bei deinem Code fällt mir auf, dass du in der letzten Zeile die $sql absenden willst, du diese allerdings nicht ausserhalb des if()-Blocks deklariert hast. In dem Fall, dass er bei der Bedingung in den else-Teil springt, ist $sql gar nicht belegt, weshalb er diesen Fehler wirft.

Dem Code nach würde ich sagen, dass du die $sqladd Abfrage in der vorletzten Zeile wegschicken willst. Des weiteren hast du deinen else-Block nicht geklammert ;) Folgende Änderungen sollten also ihren Zweck erfüllen:

PHP:
  } else {
    // Ab hier habe ich Probleme
    $sqladd =("INSERT INTO table_name(vkanal_nr,vkanal_name1,...) VALUES ('2','Tus Celle',...)");
    $oid=mysql_query($sqladd,$dbid);  my_error($dbid,$sql);
  }

Gruß
BK
 
Zurück