Sql Fehler

LiVe

Mitglied
hallo wollte mir eine shout box selber machen nur habe ien problem geht alles soweit bist auf

das eintragen da erscheint der 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 'Nick = Name, Text = Nachricht ;-)'' at line 4

hier meine sql tabele

--
-- Tabellenstruktur für Tabelle `box`
--

CREATE TABLE `box` (
`ID` int(11) NOT NULL auto_increment,
`IP` varchar(15) default NULL,
`Nick` varchar(30) default NULL,
`Text` varchar(150) default NULL,
`Datum` varchar(10) default NULL,
`Uhr` varchar(6) default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


und hier der php code

PHP:
if(isset($_POST['submit']) AND "Speichern" == $_POST['submit']) { // wenn submit gedrückt wurde folgene daten abfragen
    if(trim($_POST['Nick']) == "") {
        die("Bitte geben sie einen Namen ein");
    }
    if(trim($_POST['Text']) == "") {
        die("Bitte geben sie einen Text ein");
    }
	 $sql = "INSERT INTO 
                        box 
                    VALUES 
                        Nick = ".$_POST['Nick'].", 
                        Text = ".$_POST['Text']."';"; 
            mysql_query($sql) OR die(mysql_error());
            echo "<p>\n";
            echo "   Dein Eintrag wurde Hinzugefügt\n";
        	echo "</p>\n";
}


kann mir einer sagen ob dort was falsch ist?
 
Ja, es muss heissen:
PHP:
if(isset($_POST['submit']) AND "Speichern" == $_POST['submit']) { // wenn submit gedrückt wurde folgene daten abfragen 
    if(trim($_POST['Nick']) == "") { 
        die("Bitte geben sie einen Namen ein"); 
    } 
    if(trim($_POST['Text']) == "") { 
        die("Bitte geben sie einen Text ein"); 
    } 
     $sql = "INSERT INTO  
                        box  
                    VALUES  
                        Nick = '".$_POST['Nick']."',  
                        Text = '".$_POST['Text']."';";  
            mysql_query($sql) OR die(mysql_error()); 
            echo "<p>\n"; 
            echo "   Dein Eintrag wurde Hinzugefügt\n"; 
            echo "</p>\n"; 
}

du hattest, die ' zeichen vergessen ;) jedenfalls 3 von 4 mal
 
hmm jetzt kommt der fehler auch net viel anders




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 'Nick = 'Name', Text = 'Nachricht ;-)'' at line 4
 
hm, ich weiß nicht, ob ich damit richtig liege, aber ich verwende immer folgende schreibweise für ISERT:

PHP:
  INSERT INTO tabelle (feld1, feld2) VALUES (value1, value2)

versuch doch das mal :)
 
Probier mal die INSERT INTO … SET …-Syntax:
PHP:
<?php

	…

	if( isset($_POST['submit']) && $_POST['submit']=='Speichern' ) { // wenn submit gedrückt wurde folgene daten abfragen
		if( trim($_POST['Nick']) == '' ) {
			die('Bitte geben sie einen Namen ein.');
		}
		if( trim($_POST['Text']) == '' ) {
			die('Bitte geben sie einen Text ein.');
		}
		$query = "
			INSERT INTO
			        `box`
			  SET
			        `Nick` = '".mysql_real_escape_string($_POST['Nick'])."',
			        `Text` = '".mysql_real_escape_string($_POST['Text'])."'
			";
		mysql_query($query) OR die(mysql_error());
		echo '<p>Dein Eintrag wurde hinzugefügt.</p>';
	}

	…

?>
 
Zurück