Det är en hel del fel här.
Du använder ett MySQL-sökord list
som en funktion, och bara det kommer att orsaka dig problem.
Sidenote:Ja, jag vet att det inte är ett "reserverat" ord, det är ett "sökord" och MySQL behandlar nyckelord speciellt om de används som en funktion, vilket är vad du gör nu i din andra fråga , och är hur MySQL tolkar det som; en funktion snarare än ett tabelldeklarationsnamn.
Jag föreslår att du byter namn på den tabellen till listor, eller slår in den i bockar.
Du blandar också MySQL API:er/funktioner som inte blandas.
Så din nya kod skulle läsa som,
medan $selected = mysql_connect('christmas', $dbhandle);
släpptes
$query = mysqli_query($dbhandle, "SELECT * FROM `list` WHERE name='$name'")
or die (mysqli_error($dbhandle));
if(mysqli_num_rows($query) > 0){
echo 'that name already exists';
}else{
mysqli_query($dbhandle, "INSERT INTO `list` (name, one, two, three, four, five, six, seven, eight)
VALUES ('$name' , '$one' , '$two' , '$three' , '$four' , '$five' , '$six', '$seven' , '$eight')")
or die (mysqli_error($dbhandle));
}
mysqli_close($dbhandle);
Din kod är också öppen för en SQL-injektion. Använd ett förberett uttalande.
Nu har vi ingen aning om var alla dina variabler kommer ifrån.
Använd felrapportering.
Jag föreslår också att du använder en villkorlig empty()
för dina variabler/indata.
Annars kan du också få andra fel som MySQL kan klaga på.
Dvs:
if(!empty($var)){...}
I slutändan och för att säkerställa att det inte finns några dubbletter i din databas, kan du ställa in en UNIK begränsning.