PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php/mysql: kann keine daten eintragen...



david.preuss
04-04-2004, 08:59
hallo,

also, ich bekomme mit php ganz normal ne verbindung zum mysql-server (lokal installiert, apachefriends...) hin. ich kann auch daten mit mysql_fetch_array() auslesen. wenn ich allerdings daten in eine tabelle eintragen will macht er das nicht... mit mysql_connect() bin ich als root angemeldet...

die einzige möglichkeit tabellen etc. anzulegen ist mit phpmyadmin und das ist ja nicht der sinn der sache...

mache ich da eventuell fehler beim programmieren?

beispiel:




mysql_connect("host", "user", "password") or die("fehler");
mysql_select_db("name der db") or die("fehler");

mysql_query("INSERT INTO table (name, alter, gehirnmasse) VALUES ('david', '22', '10 gr.')");



die mysql befehle werden doch mit mysql_query() übergeben...


danke schonmal, david...

p.s. die in dem beispiel verwendete tabelle "table" wurde natürlich per phpmyadmin angelegt, sie existiert also...

undefined
04-04-2004, 10:05
Gebe die Resourcen Kennung mit an damit du auch eine richtige Fehlermeldung bekommst.
http://de2.php.net/manual/de/function.mysql-query.php
http://de2.php.net/manual/de/function.mysql-select-db.php
<?php
$con = mysql_connect("host", "user", "password") or die ("fehler");
mysql_select_db( "name der db", $con ) or die ("fehler");
$str = "INSERT INTO table (name, alter, gehirnmasse) VALUES ('david', '22', '10 gr.')";
mysql_query( $str, $con ) or die ( mysql_error() );
?>

david.preuss
04-04-2004, 17:01
also, ich bekomme folgende fehlermeldung vom mysql-server:

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 'alter, dauer, faehigkeiten) VALUES ('Jupp Heynkes', '66', '2002


die sql syntax stimmt doch (siehe oben)... woran kann's liegen? das erste feld ist VARCHAR(50) das zweite INT(2) dritte DATE und das letzte TEXT...

wo mache ich den fehler?

p.s. die felder stimmen jetzt nicht mit dem oberen beispiel-code überein...

david.preuss
04-04-2004, 18:16
also, wenn ich die feldangabe hinter "INSERT INTO tabelle" weglasse und einfach nur die VALUES's eintrage funktioniert es...

kann mir jemand sagen warum?

mr.molester
05-04-2004, 09:28
vielleicht hast du die Feldnamen falsch geschrieben (Gross-/Kleinschreibung!!!!)

nur so als idee...:confused:

david.preuss
05-04-2004, 09:31
Original geschrieben von mr.molester
vielleicht hast du die Feldnamen falsch geschrieben (Gross-/Kleinschreibung!!!!)

nur so als idee...:confused:

ne, hab ich drauf geachtet...;)

mr.molester
05-04-2004, 09:36
ich bin mir ned sicher aba muss da ned bei mysql hinter jeder befehlszeile ein ; (strichpunkt) hin???

Gaert
05-04-2004, 22:46
Hallo david,

table ist ein Reserviertes Wort in der SQL Syntax, deshalb ist es keine gute Idee eine Tabelle so zu nennen (genausowenig wie DATABASE, WHERE, INSERT usw...). Die Groß und Kleinschreibung spielt dabei keine Rolle.
Das Semikolon am Ende jedes Statements wird nur benötigt, wenn du mehrere Statements mit einem Query abschicken möchtest.

Gruß,

Gaert

mr.molester
06-04-2004, 12:26
ALTER ist au ein reserviertes wort