php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.08.2005, 10:48  
Gast
 
Beiträge: n/a
Standard [solved] Parse-Fehler bei INSERT INTO

Hallo, ich habe ein Skript, dass Daten aus einem Formular ausliest und diese in eine Datenbank einfügen soll...

Hier mal das Skript:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<body>

<?php 
    $roomno 
$_POST['roomno'];
    
$roompic $_POST['roompic'];
    
$lamp $_POST['lamp'];
    
$wardrobe $_POST['wardrobe'];
    
$bookcase $_POST['bookcase'];
    
$desk $_POST['desk'];
    
$table $_POST['table'];
    
$chair $_POST['chair'];
    
$sink $_POST['sink'];
    
$sink_shared $_POST['sink_shared'];
    
$toilet $_POST['toilet'];
    
$toilet_shared $_POST['toilet_shared'];
    
$shower $_POST['shower'];
    
$shower_shared $_POST['shower_shared'];
    
$bath $_POST['bath'];
    
$bath_shared $_POST['bath_shared'];
    
$hob $_POST['hob'];
    
$hob_shared $_POST['hob_shared'];
    
$microwave $_POST['microwave'];
    
$microwave_shared $_POST['microwave_shared'];
    
$fridge $_POST['fridge'];
    
$fridge_shared $_POST['fridge_shared'];
    
$freezer $_POST['freezer'];
    
$freezer_shared $_POST['freezer_shared'];
    
$oven $_POST['oven'];
    
$oven_shared $_POST['oven_shared'];
    
$description $_POST['description'];
    
    
$username "xxx";
    
$password "xxx";
    
$database "xxx";
    
mysql_connect(localhost,$username,$password);
    @
mysql_select_db($database) or die("Unable to select database");

       
$query "INSERT INTO 'room' ('roomno', 'lamp', 'wardrobe',
 'bookcase', 'desk', 'table', 'chair', 'sink', 'sink_shared', 'toilet', 
'toilet_shared', 'shower', 'shower_shared', 'bath', 'bath_shared', 'hob', 
'hob_shared', 'microwave', 'microwave_shared', 'fridge', 'fridge_shared', 
'freezer', 'freezer_shared', 'oven', 'oven_shared', 'description') VALUES 
('$roomno', '$lamp', '$wardrobe', '$bookcase', '$desk', '$table', '$chair', 
'$sink', '$sink_shared', '$toilet', '$toilet_shared', '$shower', 
'$shower_shared', '$bath', '$bath_shared', '$hob', '$hob_shared', 
'$microwave', '$microwave_shared', '$fridge', '$fridge_shared', '$freezer', 
'$freezer_shared', '$oven', '$oven_shared', '$description');

    mysql_query($query) or die ("
MySQL-Fehler" . mysql_error());
    echo "
Your contribution was successfulThank you!";
    mysql_close();
?>

</body>
</html>
Wenn ich das Formular allerdings ausfülle und abschicke, bekomm ich folgende Fehlermeldung:
Zitat:
Parse error: parse error, unexpected T_STRING in /srv/www/htdocs/web63/html/roombase.php on line 42
Kann mir jemand weiterhelfen? Danke schonmal...
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.08.2005, 10:52  
Gast
 
Beiträge: n/a
Standard

Tja, bei einer Zeile mit knapp 700 Zeichen kann man schon mal den Überblick verlieren (wie kann man nur so programmieren??).

Das Syntaxhighlighting des Forums verrät dir schon, wo der Fehler liegt, du musst einfach nur mal richtig hinsehen (was bei allen Parse-Errors weiterhilft)

Gruß
phpfan
  Mit Zitat antworten
Alt 15.08.2005, 10:57  
Gast
 
Beiträge: n/a
Standard

Aaahhh... Die Anführungszeichen! Sehr schön...

Jetzt krieg ich aber diese Meldung:
Zitat:
You have an error in your SQL syntax
Ist an der Syntax irgendwas nicht in Ordnung???
?>[/php]
  Mit Zitat antworten
Alt 15.08.2005, 10:58  
Gast
 
Beiträge: n/a
Standard

Ich glaube kaum, dass "You have an error in your SQL syntax" die komplette Fehlermeldung ist, oder?

Gruß
phpfan
  Mit Zitat antworten
Alt 15.08.2005, 11:01  
Gast
 
Beiträge: n/a
Standard

Ähm...nein...

Zitat:
MySQL-Fehler: 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 ''room' ('roomno', 'lamp', 'wardrobe', 'bookcase', 'desk', 'tabl
  Mit Zitat antworten
Alt 15.08.2005, 11:06  
Gast
 
Beiträge: n/a
Standard

Die Namen nicht mit ' eingrenzen, sondern mit `, bei den Werten (wenn es Strings sind) ist ' ok.

$query = "INSERT INTO `room` (`roomno`, `lamp`, ..............

Und baue bitte einen Umbruch in die lange Zeile oben ein, damit dein Quellcode das Format des Forums nicht zerreißt.

Gruß
phpfan
  Mit Zitat antworten
Alt 15.08.2005, 11:07  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Du hast nicht nur einen, sondern Dutzende von Fehlern in dieser Abfrage, weil weder Tabellen- noch Attributnamen in Anführungszeichen gehören (Und auch nummerische Werte nicht). Wenn du nicht alles in eine Zeile schreiben würdest, dann würde dir MySQL auch noch sagen, in welcher Zeile der Abfrage der Fehler steckt.

[EDIT]Oh da war jemand schneller. Aber noch als Ergänzung: Auch die Backticks brauchst du nicht, die helfen nur unsauberes Programmieren zu verstecken.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 15.08.2005, 11:09  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

die ' um room haben da nix zu suchen
genauso bei den spaltennamen, wenn überhaupt gehören da backtics hin und die auch nur wenn man nichtsauber gearbeitet hat und spaltennamen oder tabellennamen benutzt hat die ein reserved word von mysql sind.

http://dev.mysql.com/doc/mysql/en/reserved-words.html
robo47 ist offline   Mit Zitat antworten
Alt 15.08.2005, 11:23  
Gast
 
Beiträge: n/a
Standard

Also ich hab den Code jetzt mal entsprechend angepasst...

Code:
$query = "INSERT INTO `room` (`roomno`, `lamp`, `wardrobe`,
 `bookcase`, `desk`, `table`, `chair`, `sink`, `sink_shared`, `toilet`,
 `toilet_shared`, `shower`, `shower_shared`, `bath`, `bath_shared`, 
`hob`, `hob_shared`, `microwave`, `microwave_shared`, `fridge`, 
`fridge_shared`, `freezer`, `freezer_shared`, `oven`, `oven_shared`, 
`description`) VALUES ('$roomno', '$lamp', '$wardrobe', '$bookcase', 
'$desk', '$table', '$chair', '$sink', '$sink_shared', '$toilet', '$toilet_shared', 
'$shower', '$shower_shared', '$bath', '$bath_shared', '$hob', '$hob_shared', '$microwave', '$microwave_shared', '$fridge', '$fridge_shared', '$freezer', 
'$freezer_shared', '$oven', '$oven_shared', '$description')";
Jetzt krieg ich auch meine Bestätigung ala "Your contribution was successful" und in der Datenbank ist auch ein neuer Eintrag angelegt, allerdings ist bis auf die ID (die als Primärschlüssel dient und auf auto-increment gesetzt ist) alles leer...?!?!??
  Mit Zitat antworten
Alt 15.08.2005, 11:30  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

hast du error_reporting(E_ALL); in deinem Script ?

mfg
robo47
robo47 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Self Join / Nested Join ? Ich hab ne Blockade... iangillan Datenbanken 11 06.01.2008 21:37
Pathfinding Algorithmus optimieren? (Algorith. von Dijkstra) Martin13 PHP Tipps 2007 19 04.09.2007 19:20
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
Differenz zwischen 2 Zahlen duderino PHP Tipps 2006 19 10.08.2006 22:12
PRoblem mit Cookie bei PHPbb-Board PHP Tipps 2007 8 12.12.2005 20:56
insert into - wo ist der fehler? Datenbanken 5 04.11.2005 13:06
PHP-Fehlermeldung, weiss nicht mehr weiter PHP Tipps 2005-2 12 21.09.2005 12:56
mysql dump einspielen (ohne phpmyadmin) PHP Tipps 2005-2 6 18.06.2005 21:50
[Erledigt] fehler den ich noch nie gesehen habe Datenbanken 7 09.06.2005 14:29
Fehler bei INSERT INTO GrU3nL!nG Datenbanken 10 30.05.2005 15:37
dynamisches MENÜ aus db lesen.probleme mit SUBid !! PHP Tipps 2005 26 24.03.2005 18:53
dem verzweifeln nahe PHP Tipps 2004 26 24.10.2004 17:28
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
Zeile einfach überspringen bei Unique-Verletzung tapferesschneiderlein Datenbanken 6 03.09.2004 14:29
[Erledigt] HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
parse fehler, php insert into pars error, parse-fehler in zeile, parsel fehler, parsenfehler, parse-fehler, php insert into parse error, insert into in phpbb3 korrekt ausführen, fehler in insert into, php fehler bei insert ausgeben, fehelermeldung bei insert into ausgeben, php fehler beim insert, $query=\insert into, insert into table \'<!doctype html public >\', parsen hob, php fehler bei insert into anzeigen, mysql insert lange zeilenumbruch, parse-fehler zeile 13 spalte 12

Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.