• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SQL Syntax Error

Status
Für weitere Antworten geschlossen.

lucarp

Mitglied
Hallo

jetzt habe ich einen SQL Syntax error und weiß nicht wo er ist, bzw. wie ich ihn finde

PHP:
<?php

require ('config.php'); 

$name = $_POST['name'];
$email = $_POST['email'];


$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Es konnte keine Verbindung zur Datenbank hergestellt werden");

@mysql_select_db($mysqldb, $connection) or die ("Die Datenbank konnte nicht ausgewählt werden");

$sql = "INSERT INTO $mysqltable (name, email) VALUES ($name, $email)";

$result = mysql_query($sql) or die (mysql_error());

echo "Datensatz wurde erfolgreich von $name aktualisiert!<br><br>";



mysql_close ($connection);


?>


folgendes wird angezeigt:

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 ' )' at line 1
 
sorry die habe ich in der config.php ober mit require eingebunden

sieht so aus:
PHP:
<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="*****"; // MySQL-User angeben
$mysqlpwd="*****"; // Passwort angeben
$mysqldb="******"; // Gewuenschte Datenbank angeben
$mysqltable="test";
?>
mit error_reporting(E_ALL);

sagt er mir

Notice: Undefined index: name in /mnt/webspace/04/28926/award.glimt-films.com/send.php on line 23

Notice: Undefined index: email in /mnt/webspace/04/28926/award.glimt-films.com/send.php on line 24

das sind diese beiden Zeilen:

$name = $_POST['name'];
$email = $_POST['email'];
 
Zuletzt bearbeitet:
String müssen in SQL in Anführungszeichen.

Wenn das kein POST-Request war, dann solltest du das Script nicht ausführen, wenn dort POST-Daten abgefragt werden.
 
Das mit dem Post-Request verstehe ich nicht ganz.

ich übergebe die Daten aus dem Formular mit POST und speichere sie dann in die variablen $name und $email.

sonst geht das doch auch ..warum hier nicht??

Das mit der Bedingung habe ich schon versucht, allerdings wir d dann der fehler in Zeile 37 verschoben

PHP:
$sql = "INSERT INTO $mysqltable (name, email) VALUES ($name, $email)";

wo die variablen $name und $email wieder auftauchen. oder muss ich auch diese anders schreiben?
 
Zuletzt bearbeitet:
Wenn Du die Elemente des assoziativen Arrays $_POST nicht den entsrprechenden Variablen zugewiesen hast, dann muss der SQL-String so auifgebaut werden.
PHP:
$sql = "INSERT INTO $mysqltable (name, email) VALUES ('".$_POST['name']."', '"$_POST['email']."')";

Gruß thuemmy
 
er gibt trotzdem

INSERT INTO test (name,email) VALUES ('', '')

aus und sagt:

Notice: Undefined index: name in /mnt/webspace/04/28926/award.glimt-films.com/send.php on line 36

Notice: Undefined index: email in /mnt/webspace/04/28926/award.glimt-films.com/send.php on line 36


was könnte es noch sein??
 
Entweder Du rufst zum Testen das Script so auf, also nicht über die Submit-Schaltfläche, oder aber die Felder heißen in Deinem Formular anders.

Gruß thuemmy
 
HTML:
<form action="send.php" enctype="text/plain" method="post">
<input type="text" size="20" name="name"><br />
<input type="text" size="20" name="email"><br />
<input type="submit" value="eintragen" name="eintragen">
</form>
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben