كيف يمكنني جعل الايميل وحساب المستخدم لا يتكرر في SQL

السلام عليكم ورحمة الله

اريد جعل الايميل و حساب المستخدم لا يتكرر في قاعدة البيانات وشكرا.


يمكنك استخدام دالة التحقق في التطبيق لمنع تكرار البريد الإلكتروني قبل اضافته في قواعد البيانات,

على سبيل المثال، يمكنك استخدام وظيفة check_unique_email للتحقق مما إذا كان البريد الإلكتروني موجودًا بالفعل في قاعدة البيانات. إذا كان موجودًا بالفعل، فلن تسمح الوظيفة بإدخال البريد الإلكتروني.

  • مثال على كيفية استخدام وظيفة check_unique_email:-
function check_unique_email($email) {
  // إنشاء استعلام SQL
  $sql = "SELECT COUNT(*) AS count FROM users WHERE email = :email";

  // إعداد استعلام SQL
  $stmt = $pdo->prepare($sql);
  $stmt->bindParam(':email', $email);

  // تنفيذ الاستعلام
  $stmt->execute();

  // الحصول على عدد النتائج
  $count = $stmt->fetchColumn();

  // إرجاع النتيجة
  return $count > 0;
}


يمكنك استخدام هذه الدالة قبل إدخال البريد الإلكتروني في قاعدة البيانات ,في طريقة create لنموذج المستخدم:

// إنشاء نموذج المستخدم
class UserModel {

  public function create() {
    // تحقق مما إذا كان البريد الإلكتروني موجودًا بالفعل
    if (!check_unique_email($this->email)) {
      throw new Exception("البريد الإلكتروني موجود بالفعل");
    }
  }

}