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

Kiểm tra xem cái này có trùng lặp không

Nếu bạn muốn kiểm tra xem username đã được sử dụng:

SELECT * FROM users WHERE username = :username

Nếu bạn trả về một hàng: bạn gặp lỗi , nếu không, bạn thực hiện INSERT của mình

Vì vậy, mã của bạn sẽ giống như sau:

if ($valid) {
    $pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql_check = "SELECT * FROM users WHERE username = :username";
    $test = $pdo->prepare($sql_check);
    $test->bindParam(':username', $username); 
    $test->execute;

Bây giờ đây là hai giải pháp để kiểm tra xem bạn có một hàng hay không:

    if($test->rowCount() > 0) {
        // error
    }      

hoặc

    $user = $test->fetch();

    if (!empty($user)) {
        // error
    }

Và bây giờ nếu bạn không gặp lỗi, bạn có chèn:

    else {
        //$password = md5($password);
        $sql = "INSERT INTO users (username,password,role) values(?, ?, ?)";
        $q = $pdo->prepare($sql);
        $q->execute(array($username,$password,$role));
        Database::disconnect();
        header("Location: index.php");
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thứ tự mysql php theo dấu thời gian không chính xác

  2. Rất nhiều trạng thái Kết thúc Truy vấn trong MySQL, tất cả các kết nối được sử dụng trong vài phút

  3. Nhóm OHLC-Dữ liệu thị trường chứng khoán thành nhiều khung thời gian - Mysql

  4. Hiểu nhật ký kiểm tra ProxySQL

  5. Làm cách nào để TẢI THÔNG TIN DỮ LIỆU trong mysql với cột đầu tiên là Auto Increment?