Seite 1 von 2
SQL problem... INSERT INTO
Verfasst:
15. Aug 2008, 10:25
von Gast
Hallo...
hab in letzter zeit versucht ein kleines Gästebuch zu erstellen...
die Verbindung zur Datenbank müsste stehen, aber ich hab Probleme mit dem Befehl "INSERT INTO".
Die Zeile, in der angeblich ein Fehler auftaucht:
INSERT INTO gaestebuch('name' , 'eintrag') VALUES ('$name' , '$eintrag');
Kann mir jemand weiterhelfen?
PS: bin PHP und mysql anfänger;-)
Danke im vorraus
Mfg Spucky
Re: SQL problem... INSERT INTO
Verfasst:
15. Aug 2008, 12:19
von Gast
füg mal nach dem query "echo mysql_error();" hinzu.
und ich hoff mal, dass du die vars vorher überprüfst.
Re: SQL problem... INSERT INTO
Verfasst:
17. Aug 2008, 20:39
von Gast
ok anscheinend hast du dein problem schon gelöst, würd mich trotzdem über ne Post freuen, worans denn nun lag.
Re: SQL problem... INSERT INTO
Verfasst:
20. Aug 2008, 12:42
von Gast
Es gehören keine Apostrophe hin ( '$name' ), sondern Akzente ( ´$name´ )! Des weiteren solltest du die Klammern weglassen.
Re: SQL problem... INSERT INTO
Verfasst:
20. Aug 2008, 12:46
von Gast
michederoide hat geschrieben:Es gehören keine Apostrophe hin ( '$name' ), sondern Akzente ( ´$name´ )! Des weiteren solltest du die Klammern weglassen.
ja ? und wieso funzen mein scripte ("" für werte, `` für tabellen-namen usw) ?
klammern ? also ... kanna uch nur das sagen was ich oben schon stehn hab... (
http://tut.php-q.net/mysql-insert.html)
edit: ok verguckt ... dachte '$name' isn wert ... ^^, aba die klammern ist doch auch richtig an der stelle
Re: SQL problem... INSERT INTO
Verfasst:
20. Aug 2008, 13:39
von Gast
Also bei mir gibt er mit Apostrophen und Klammern einen SQL-Fehler aus!
Versuch mal, ein Leerzeichen hinter
gaestebuch zu schreiben
oder lasse es nach
VALUES weg. Vielleicht hilft das! Außerdem überprüfe vorher die Variablen:
- Code: Alles auswählen
...
if(isset($name) && isset($eintrag)) {
mysql_query($sql);
}
...
Re: SQL problem... INSERT INTO
Verfasst:
20. Aug 2008, 14:23
von Gast
Das doch alles quark hier ...
- Code: Alles auswählen
$sql = "
INSERT INTO gaestebuch('name' , 'eintrag') VALUES ('".$name."' , '".$eintrag."')";
mysql_query($sql);
Das wäre ein ordentliches Query indem man auch ne gute Zeichenverkettung hat. das dürfte auf jedenfall funktionieren
Re: SQL problem... INSERT INTO
Verfasst:
20. Aug 2008, 18:34
von Gast
Das ist ebenfalls Quark:
1) Benutze ' anstatt ": Dies ist viel schneller
2) Variablen sollten niemals ungefiltert eingetragen werden
$sql = 'INSERT INTO gaestebuch(\'name\' , \'eintrag\') VALUES (\''.mysql_real_escape_string($name).'\', '\'.mysql_real_escape_string($eintrag).'\')';
mysql_query($sql);
Re: SQL problem... INSERT INTO
Verfasst:
20. Aug 2008, 22:13
von Gast
die Lösung wäre dann auch noch Performance bedacht
Nur einen \ Fehler
$sql = 'INSERT INTO gaestebuch(\'name\' , \'eintrag\') VALUES (\''.mysql_real_escape_string($name).'\', \''.mysql_real_escape_string($eintrag).'\')';
mysql_query($sql);
Re: SQL problem... INSERT INTO
Verfasst:
21. Aug 2008, 05:15
von Gast
wie währes damit ?
- Code: Alles auswählen
$sql = 'INSERT INTO `gaestebuch`(`name` , `eintrag`) VALUES ("'.sql_val($name).'", "'.sql_val($eintrag).'")';
mysql_query($sql);
sql_val:
- Code: Alles auswählen
function sql_val($sql_var)
{
if( get_magic_quotes_gpc() )
$sql_var = stripslashes($sql_var);
$sql_var = mysql_real_escape_string($sql_var);
return($sql_var);
}