Avatar billede scifo Nybegynder
26. juni 2006 - 01:12 Der er 4 kommentarer og
2 løsninger

SQL syntax error med INSERT INTO¨kode

hej eksperter.
-------------------------
Har flg. kode:
-------------------------

<?php
include ("connectdb.inc");
?>

<html>
<head>
<title>TheSite</title>
</head>
<body>


<?php
if(isset($_POST['opret'])){
// Hent indholdet fra opretbrugerform.php formularfelter
$brugernavn = $_REQUEST["brugernavn"];
$kodeord = $_REQUEST["kodeord"];
$fornavn = $_REQUEST["fornavn"];
$efternavn = $_REQUEST["efternavn"];
$adresse1 = $_REQUEST["adresse1"];
$adresse2 = $_REQUEST["adresse2"];
$postnummer = $_REQUEST["postnummer"];
$by = $_REQUEST["by"];
$email = $_REQUEST["email"];
$telefon1 = $_REQUEST["telefon1"];
$telefon2 = $_REQUEST["telefon2"];
$profiltekst = $_REQUEST["profiltekst"];
$kodeord = md5($kodeord);

// Indsæt indholdet af formularfelterne i databasen
mysql_query("INSERT INTO spilsiden_brugerliste (id, brugernavn, kodeord, fornavn, efternavn, adresse1, adresse2, postnr, by, email, telefon1, telefon2, profiltekst, rettighed, aktiv)
VALUES ('0', '$brugernavn', '$kodeord', '$fornavn', '$efternavn', '$adresse1', '$adresse2', '$postnummer', '$by', '$email', '$telefon1', '$telefon2', '$profiltekst', '0', '1')") or die('Der skete en fejl under oprettelsen: ' .mysql_error());


// Giv brugeren besked om oprettelsen
echo ("Tillykke! Du er nu oprettet som bruger på siden");
}
?>


<TABLE>
<FORM METHOD=POST ACTION=<?php echo $_SERVER['PHP_SELF']; ?>>
<INPUT TYPE="hidden" NAME="opret" VALUE="1">
<TR><TD>
Brugernavn<BR><INPUT TYPE="text" NAME="brugernavn">
</TD><TD>
Kodeord<BR><INPUT TYPE="text" NAME="kodeord">
</TD></TR><TR><TD>
Fornavn<BR><INPUT TYPE="text" NAME="fornavn">
</TD><TD>
Efternavn<BR><INPUT TYPE="text" NAME="efternavn">
</TD></TR><TR><TD>
Adresse 1<BR><INPUT TYPE="text" NAME="adresse1">
</TD><TD>
Adresse 2<BR><INPUT TYPE="text" NAME="adresse2">
</TD></TR><TR><TD>
Postnr.<BR><INPUT TYPE="text" NAME="postnummer">
</TD><TD>
By<BR><INPUT TYPE="text" NAME="by">
</TD></TR><TR><TD>
Email<BR><INPUT TYPE="text" NAME="email">
</TD><TD>
Telefon1<BR><INPUT TYPE="text" NAME="telefon1">
</TD></TR><TR><TD>
Telefon2<BR><INPUT TYPE="text" NAME="telefon2">
</TD></TR><TR><TD COLSPAN="2">
Profiltekst<BR><TEXTAREA COLS="40" ROWS="8" NAME="profiltekst"></TEXTAREA>
</TD></TR></TABLE><BR>
<INPUT TYPE="submit" VALUE="Opret mig nu">&nbsp;<INPUT TYPE="reset" VALUE="Ryd felter">
</FORM>

</body>
</html>

--------------------------------
Dump af tabellen:
--------------------------------

CREATE TABLE `spilsiden_brugerliste` (
  `id` bigint(20) NOT NULL auto_increment,
  `brugernavn` varchar(255) NOT NULL default '',
  `password` varchar(255) character set latin1 collate latin1_danish_ci NOT NULL default '',
  `fornavn` varchar(255) NOT NULL default '',
  `efternavn` varchar(255) NOT NULL default '',
  `adresse1` varchar(255) NOT NULL default '',
  `adresse2` varchar(255) NOT NULL default '',
  `postnr` int(4) NOT NULL default '0',
  `by` varchar(255) NOT NULL default '',
  `email` varchar(255) NOT NULL default '',
  `telefon1` int(8) NOT NULL default '0',
  `telefon2` int(8) NOT NULL default '0',
  `profiltekst` text NOT NULL,
  `oprettet_dato` datetime NOT NULL default '0000-00-00 00:00:00',
  `sidst_online` datetime NOT NULL default '0000-00-00 00:00:00',
  `rettighed` int(4) NOT NULL default '0',
  `aktiv` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `brugernavn` (`brugernavn`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='List over alle brugere på siden' AUTO_INCREMENT=2 ;

------------------------
Og får flg. fejl
--------------------------
Der skete en fejl under oprettelsen: 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 'by, email, telefon1, telefon2, profiltekst, rettighed, aktiv)

-----------------
Hvad er der galt?
Mvh
Scifo
Avatar billede ztyxx Nybegynder
26. juni 2006 - 01:14 #1
`by` varchar(255) NOT NULL default '',, by er et reserveret ord, så du må ændre det til eks bynavn
Avatar billede morhan Novice
26. juni 2006 - 01:24 #2
det er derfor phpmyadmin og andre administrationsmoduler altid sætter back ticks rundt om navnet, så undgår man konflikterne med de reserverede navne
Avatar billede scifo Nybegynder
26. juni 2006 - 02:00 #3
ztyxx: Ja... selvfølgelig.. det er da klart ;-)

Dummebøde til mig og 30 points til dig når du ligger et svar.

Mvh
Scifo
Avatar billede ztyxx Nybegynder
27. juni 2006 - 11:13 #4
giv mig de 15 og tag selv resten ;-)
Avatar billede scifo Nybegynder
30. juni 2006 - 02:27 #5
oki takker alligevel ;-)
Avatar billede ztyxx Nybegynder
30. juni 2006 - 22:52 #6
jeg takker også :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester