Hej!
Har gjort en sida där man kan registrera sig som ny medlem, men nånting har gått snett. Jag får inget felmeddelande eller nåt, utan allt ser ut som det ska. Uppgifterna vägrar dock att hamna i databasen av nån anledning :( Nån som ser vad som är fel?
<? }
function check() {
global $uname, $pass, $fname, $lname, $bday, $email, $icq, $msn;
$länk = mysql_connect ("localhost", "","");
$sql="SELECT * FROM user WHERE uname='$uname'";
$result = mysql_db_query("users","$sql");
if(!($rad=mysql_fetch_array($result))) {
$sql="INSERT INTO user(uname,fname,lname,email,pass,birthday,icq,msn) VALUES('$uname','$fname','$lname','$email','$pass','$bday','$icq','$msn')";
mysql_db_query("users","$sql");
echo "<span class='text'>Du är nu registrerad $uname<br>";
echo "<a href='index.php'>Logga in</a></span>";
}
else {
echo "Ditt användarnamn var upptaget. Välj ett annat.";
form();
}
mysql_close ($länk);
}
?>
har lagt till or die(mysql_error()); nu, och får följande felmeddelande:
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 'user(uname,fname,lname,email,pass,birthday,icq,msn) VALUES('Par
INSERT INTO user(uname,fname,lname,email,pass,birthday,icq,msn) VALUES('$uname','$fname','$lname','$email','$pass','$bday','
$icq','$msn')
För det första, varför två mellanslag mellan "...icq,msn)" och "VALUES"?
För det andra, (detta är helt säkert inte felet men kan alltid vara bra att ta bort) varför har du ny rad direkt före '$icq'? För jag antar att du inte vill ha radbrytning precis före icq-numret? :q
När mysql_error rapporterar felmeddelande brukar det ta med SQL-frågan med början där felet ligger.
I det här fallet bör du titta närmare på user.
Jag varit med om att några har varit tvungna att ha ett mellanslag mellan user och parentesen.
Jag kan inte hitta user i reserverade ord, men det är ändå ett kolumnnamn jag känner mig tveksam till. Lägg bakåtfnuttar runt det, för att säkra upp det. Alltså `user`.