ThinkPHP の自動検証の問題について
滿天的星座
滿天的星座 2017-05-16 13:09:54
0
3
553

![画像をアップロード中...]

 public function addUserBasicData($username,$password,$user_type,$email,$phone,$onlyuid = '598E0CD9'){
        if (空($ユーザー名)) {
            $username = "ユーザー".mt_rand();
        }
        $data['ユーザー名'] = $ユーザー名;
        $data['onlyuid'] = $onlyuid;
        $data['パスワード'] = $パスワード;
        $data['user_type'] = $user_type;
        $data['email'] = $email;
        $data['phone'] = $phone;
        $data['regdate'] = NOW_TIME;

        $rules = 配列(
            array('onlyuid','','重複する ID',0,'unique',1),
            array('phone','require','不正な携帯電話番号','/^(13|14|15|16|17|18)\d{9}$$/'),
            array('phone','','入力した携帯電話番号は登録されました!',0,'unique',1),
            array('email','','入力したメールアドレスは既に登録されています!',0,'unique',1),
            array('password','require','まだパスワードを入力していません!'),
            array('user_type','require','ユーザー タイプが選択されていません!'),
            array('repassword','password','パスワードが間違っていることを確認してください',0,'confirm'),
            array('パスワード','checkPwd','パスワードの形式が正しくありません',0,'関数'),
        );
        if (!$this->table('yy_common_member')->validate($rules)->create()){
            $return_value["ステータス"] = "失敗";
            $return_value["ステータスコード"] = 40000;
            $return_value["status_message"] = $this->getError();;
            $return_value["データ"]= "";
            $return_value を返します。
               
        }それ以外{
            $uid = $this->table('yy_common_member')->add($data);
            $data2['uid'] = $uid;
            $return_value["ステータス"] = "成功";
            $return_value["ステータスコード"] = 20105;
            $return_value["ステータスメッセージ"] = "";
            $return_value["data"]= $this->table('yy_common_member_profile')->add($data2);
            $return_value を返します。
        }

    }

上記はコード スニペットです
それぞれ設定された
array('onlyuid','','duplicate id',0,'unique',1) および array('phone','', ' 入力した携帯電話番号はすでに登録されています! ',0,'unique',1)、
の確認ルール。
ただし、前者は有効になりませんが、後者は使用できます

エラー報告

通常
< /スパン>

滿天的星座
滿天的星座

全員に返信(3)
世界只因有你

これは明らかに SQL ステートメントによって報告されるエラーであり、挿入された唯一の uid が繰り返されます。

いいねを押す +0
过去多啦不再A梦

データベースのonlyuidフィールドのデータ型は何ですか?

いいねを押す +0
世界只因有你

誰もが正しいです。理由はデータベースにあり、重複したonlyuidを挿入しようとしていますが、このフィールドは明らかに一意に設定されています。

このフィールドの文字通りの意味があまり強くない場合は、データを挿入するたびにこのフィールドを直接スキップして自動的に増加させるのではなく、自動インクリメント フォームを使用することをお勧めします。

このフィールドに挿入される値が最大許容値を超えている可能性もあります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート