Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tôi dường như không thể ngăn đầu vào tên trùng lặp

Có một số điều sai ở đây.

Bạn đang sử dụng từ khóa MySQL list như một chức năng, và chỉ điều đó thôi cũng sẽ gây ra cho bạn vấn đề.

Chú thích bên:Vâng, tôi biết đó không phải là từ "dành riêng", mà là "từ khóa" và MySQL xử lý từ khóa đặc biệt nếu được sử dụng như một hàm, đó là những gì bạn đang làm trong truy vấn thứ hai của bạn , và là cách mà MySQL đang diễn giải nó là; một hàm chứ không phải tên khai báo bảng.

Tôi khuyên bạn nên đổi tên bảng đó thành danh sách hoặc bọc nó trong dấu tích.

Bạn cũng đang trộn các API / hàm MySQL không trộn lẫn với nhau.

Vì vậy, mã mới của bạn sẽ đọc là,
khi thả $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);

Mã của bạn cũng có thể được đưa vào SQL. Sử dụng một tuyên bố đã chuẩn bị.

Bây giờ, chúng tôi không biết tất cả các biến của bạn đến từ đâu.

Sử dụng báo cáo lỗi.

Tôi cũng khuyên bạn nên sử dụng empty() có điều kiện cho các biến / đầu vào của bạn.

Nếu không, bạn cũng có thể gặp các lỗi khác mà MySQL có thể phàn nàn.

Tức là:

if(!empty($var)){...}

Cuối cùng và để đảm bảo không có mục nhập trùng lặp nào trong cơ sở dữ liệu của bạn, bạn có thể đặt một ràng buộc DUY NHẤT.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm nạp và hiển thị dữ liệu cho từng người dùng đã đăng ký trong PHP bằng PDO

  2. c ++ kết nối mysql bad_alloc sử dụng trình kết nối c ++

  3. Dòng INNODB khi xóa và cập nhật

  4. Làm cách nào để chèn các ký tự tiếng Pháp vào bảng MySQL DB?

  5. Làm cách nào để cập nhật một bản ghi cụ thể mà không có quyền CHỌN?