MySQL nen Wert eintragen

Jens B.

Erfahrenes Mitglied
Tagchen

Zuallererst: ich ihab schon Forensuche benutzt, da kam aber immer nur ein Script wie der, von dem ich ausgegangen bin (und den ich verändert hab, sodass er jetzt nichtmehr geht...). Es kann aber auch sein, dass ich nach dem falschen gesucht habe, da ich mich mit PHP nicht so genau auskenne und einfach auf "gu Glück" die Suchbegriffe eingegeben hab... wenn ja dann sorry :D

Also ich entwickel grade als totaler PhP-Neuling ein Script, welches die Schnittstelle zwischen Flash und MySQL darstellen wird. Das ganze funktioniert auch super, nurdass ich keine Werte eintragen kann. Hier mal der Script:

PHP:
function db_eingabe($tabelle, $spalte, $wert) { // Trägt einen neuen Wert ein
    	$eintrag = "INSERT INTO ".$tabelle." (".$spalte.") VALUES (".$wert.")";
	$eintragen = mysql_query($eintrag) or die(mysql_error());
	echo("ergebnis=ok");
}

Mein Problem leigt whl darin, dass ich nicht Werte für die gesamte Tabelle eintragen will, sondern nur für eine Spalte. Ich bekomme diesen Fehler:

Unknown column 'elefant' in 'field list'
(Ich habe "elefant" als neuen Usernamen eintragen wollen). :)

Was mache ich falsch

Gruß,
Jens
 
Also so wie ich das sehe, übergibst Du die Werte falsch...
Denn die Fehlermeldung sagt ja, dass die Spalte "elefant" nicht gefunden wird.

Ich nehme einfach mal an, dass Du die Spalte mit den usernamen einfach "user" genannt hast.

Also müsste Dein Funktionsaufruf so aussehen:

db_eingabe($tabelle, "user", "elefant")

MfG
Hans

BTW:
Ich würde die Query noch ein bisschen "verschönern":
PHP:
$eintrag = "INSERT INTO `".$tabelle."` (`".$spalte."`) VALUES ('".$wert."');
 
Kannst Du bitte mal posten, wie dein Funktionsaufruf aussieht - wenn möglich mit den eingegebenen Werten.
Deine Fehlermeldung lässt darauf schließen, dass der einzutragende Wert an $spalte übergeben wird.
 
Ich rufe das ganze im Moment noch über den Browser auf, aber die Werte werden shcon so übergeben wie du das da sagst... und hab auch alles 100 mal gecheckt und neu eingegeben usw.

PHP:
if($_GET["typ"] == "add") {
 	db_eingabe($_GET["tabelle"], $_GET["spalte"],  $_GET["wert"]);
}

Nach der "Testphase" wird jedes GET durch nen Post erstetzt sodass ich es mit Flash benutzen kann. Trotzdem es nicht. Hier mal der "aufruf"...

(...)mysql.php?typ=add&tabelle=wohuser&spalte=name&wert=elefant

Wenn du willst poste ich mal den gesamten Code, der is aber ziemlich lang....

/edit hmpf tutorials.de kürzt den link ...
 
Lass dir mal $eintrag ausgeben bevor du die DB-Query durchführst, und schau, ob er die Werte richtig bzw an den richtigen Stellen übergibt.

Edit: hast du die query so angepasst, wie von hans_schmid beschrieben?
Falls nicht, tue das bitte bzw ändere sie mal wie folgt:
PHP:
$eintrag = "INSERT INTO $tabelle ($spalte) VALUES ($wert)";
(also ohne ")
 
Zuletzt bearbeitet:
Oh hab nen Fehler gemacht:
PHP:
$eintrag = "INSERT INTO '$tabelle' ('$spalte') VALUES ('$wert')";

NOCHMAL NACHTRAG

Änder mal die Funktionsaufrufe in
if
elseif
elseif
...
else
 
Geht immernoch nicht. Kann es sein, dass es daran liegt, dass meine Tabelle mehr Spalten als eine hat oder is das egal?
 
Zurück