Ada beberapa hal yang salah di sini.
Anda menggunakan kata kunci MySQL list
sebagai fungsi, dan itu saja akan menyebabkan masalah bagi Anda.
Sidenote:Ya, saya tahu itu bukan kata "cadangan", ini adalah "kata kunci" dan MySQL memperlakukan kata kunci secara khusus jika digunakan sebagai suatu fungsi, yang sedang Anda lakukan sekarang dalam kueri kedua Anda , dan merupakan cara MySQL menafsirkannya sebagai; fungsi daripada nama deklarasi tabel.
Saya sarankan Anda mengganti nama tabel itu menjadi daftar, atau membungkusnya dengan tanda centang.
Anda juga mencampur API/fungsi MySQL yang tidak bercampur.
Jadi kode baru Anda akan terbaca sebagai,
sambil menjatuhkan $selected = mysql_connect('christmas', $dbhandle);
$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);
Kode Anda juga terbuka untuk injeksi SQL. Gunakan pernyataan yang sudah disiapkan.
Sekarang, kami tidak tahu dari mana semua variabel Anda berasal.
Gunakan pelaporan kesalahan.
Saya juga menyarankan Anda menggunakan empty()
bersyarat untuk variabel/input Anda.
Jika tidak, Anda mungkin juga mendapatkan kesalahan lain yang mungkin dikeluhkan oleh MySQL.
yaitu:
if(!empty($var)){...}
Pada akhirnya dan untuk memastikan tidak ada entri duplikat di database Anda, Anda dapat menetapkan batasan UNIK.