Eintragenscript

Hallo!

Nur so am Rande.....
Die Spaltennamen müssen beim INSERT INTO nicht zwingend mit angegeben werden.
Dann ist allerdings pinibel darauf zu achten dass die VALUES vollständig und in der richtigen Reihenfolge sind.

Gruss Dr Dau
 
Und da man in der Regel ein Feld mit einer ID hat und dieses automatisch gefuellt wird laesst man dieses beim Eintragen logischerweise weg. Daraus resultierend muss man dann die einzutragenden Felder angeben. Da das im Grunde der Regelfall ist muss man wohl in mehr als 95% aller Faelle die Feldnamen mit angeben. ;)
 
@Dennis, stimmt nicht ganz.
Kleines Beispiel:
Code:
"INSERT INTO `tabelle` (`ID`, `Spalte1`, `Spalte2`) VALUES('ID_sofern_vorhanden', 'foo', 'bar')"
Kann genauso gut so gemacht werden:
Code:
"INSERT INTO `tabelle` VALUES('ID_sofern_vorhanden', 'foo', 'bar')"
Wichtig ist hat dass der Tabellenaufbau dem INSERT entspricht.

Hast Du dir mal mein SQL-Dump angesehen?
Damit es keine Kollision mit evtl. schon vorhandenen ID's beim eintragen gibt, habe ich diese weggelassen:
Code:
"INSERT INTO `orte` VALUES('', '1001', 'Dresden')"
So hat auch jeder die Möglichkeit die Spalten so zu benennen wie er es möchte..... hauptsache die Reihenfolge stimmt.
Im grunde ist es aber nichts anderes als:
Code:
"INSERT INTO `orte` (`ID`, `PLZ`, `Ort`) VALUES('', '1001', 'Dresden')"
So wird jeweils die nächstmögliche höhere ID Eingetragen.
Ich will es jetzt nicht beschwören, aber ich meine dass bei einem INSERT mit einem Error abgebrochen wird, falls die ID schon belegt ist.
Dass währe bei über 40.000 Datensätzen nicht wirklich schön. ;)

Prinzipiell muss ich aber recht geben, die Spaltennamen sollten mit angegeben werden.
Jedoch könnte man sich z.b. bei den Spaltennamen verschreiben (Gross-/Kleinschreibung, Buchstabenverdreher), dann könnte es evtl. hilfreich sein die Spaltennamen mal einfach aussenvor zu lassen.
 
Ich hatte den Thread gesehen, aber da waren die Dumps noch nicht da gewesen.
Werd mal reinschauen.

Natuerlich kann man es auch anders machen, aber ich denke mal, dass die meisten die Feldnamen in der Regel mit angeben.
 
Ich wollte ja auch nur drauf aufmerksam machen, dass die Spaltennamen nicht zwingend erforderlich sind.
So hatte schecker es ja auch gemacht (also ohne Spaltennamen).
Aber nero_85 hatte in diesem Posting geschrieben, dass die Spaltennamen mit angegeben werden müssen.

Die "saubere" Methode ist sicherlich mit Spaltennamen, ich gehe auch davon aus dass die meisten es so machen.
 
Naja, ich hab auch gedacht man muss das so machen! Habs eben nie anders gelernt! ;) Wie gesagt, man lernt eben immer wieder was dazu!
 
erneut Eintragenscript

so, da mein Problem immer noch nicht gelöst ist, frage ich noch einmal.
Ich möchte das was in einer Textbox steht in meine Datenbank eintragen:

In die Textbox gebe ich folgenden SQL-Code ein:
PHP:
INSERT INTO `artikeldetails` VALUES 
( '18 ' ,'13 ' ,'Kombizange ' ,'7101165 ' ,' ' ,' 165 mm' ,' 230 g' ,' 1' ,' 18.14' ,' 1' ,' 1' ,'1' ,'0' ,'0x31' ,'0x31' ,' 0x31' ,'' );
natürlich maskiere ich die ' mit dem entsprechenden htmlcode. der wird auch perfekt umgewandelt

dann sage ich senden und mein PHP-Script soll ausgeführt werden:
PHP:
<?  
$artikel=$_POST["artikel"];  
include("datenbank.php");  
    $sql=$artikel; 
    echo $sql."<br>";  
    mysql_query($sql) or die(mysql_errno().": ".mysql_error()); 

?>
doch ich bekomme immer die Ausgabe:
INSERT INTO `artikeldetails` VALUES ('18 ' ,'13 ' ,'Kombizange ' ,'7101165 ' ,' ' ,' 165 mm' ,' 230 g' ,' 1' ,' 18.14' ,' 1' ,' 1' ,'1' ,'0' ,'0x31' ,'0x31' ,' 0x31' ,'' );
1064: 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 ''18 ' ,'13 ' ,'Kombizange ' ,'7101165 ' ' at line 2


nehme ich jetzt aber die Insertanweisung und gebe sie direkt in den Xampp ein, funktioniert es?
Kann mir jemand helfen?
 
Zuletzt bearbeitet:
Zurück