sql >> データベース >  >> RDS >> Mysql

これが重複していないか確認してください

    usernameかどうかを確認したい場合 すでに使用されています:

    SELECT * FROM users WHERE username = :username
    

    1行を返す場合:エラーをスローします 、それ以外の場合は、INSERTを実行します

    したがって、コードは次のようになります:

    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;
    

    ここに、1つの行があるかどうかを確認するための2つの解決策があります:

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

    または

        $user = $test->fetch();
    
        if (!empty($user)) {
            // error
        }
    

    エラーがない場合は、挿入しますか:

        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. bbPress:それぞれの投稿への添付ファイルのマッピングを見つける方法

    2. SQL Serverリストテーブル:すべてのテーブルを表示する方法

    3. MySQLの削除された「root」ユーザーとパスワードを復元する

    4. LOAD_FILEはNULLを返します