Seite 1 von 2

SQL problem... INSERT INTO

BeitragVerfasst: 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

BeitragVerfasst: 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

BeitragVerfasst: 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

BeitragVerfasst: 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

BeitragVerfasst: 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

BeitragVerfasst: 20. Aug 2008, 13:39
von Gast
Also bei mir gibt er mit Apostrophen und Klammern einen SQL-Fehler aus! :o 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

BeitragVerfasst: 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

BeitragVerfasst: 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

BeitragVerfasst: 20. Aug 2008, 22:13
von Gast
die Lösung wäre dann auch noch Performance bedacht :D

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

BeitragVerfasst: 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);
}