![Téléchargement de photos...]
fonction publique addUserBasicData($username,$password,$user_type,$email,$phone,$onlyuid = '598E0CD9'){
if (vide ($ nom d'utilisateur)) {
$username = "Utilisateur".mt_rand();
}
$data['nom d'utilisateur'] = $nom d'utilisateur ;
$data['onlyuid'] = $onlyuid;
$data['mot de passe'] = $mot de passe ;
$data['user_type'] = $user_type;
$données['e-mail'] = $e-mail ;
$données['téléphone'] = $téléphone ;
$data['regdate'] = MAINTENANT_TIME ;
$rules = tableau(
array('onlyuid','','identité en double',0,'unique',1),
array('téléphone','require','Numéro de téléphone portable illégal','/^(13|14|15|16|17|18)\d{9}$$/'),
array('phone','','Le numéro de téléphone portable que vous avez saisi a été enregistré !',0,'unique',1),
array('email','','L'adresse email que vous avez saisie a déjà été enregistrée !',0,'unique',1),
array('password','require','Vous n'avez pas encore renseigné le mot de passe !'),
array('user_type','require','Vous n'avez sélectionné aucun type d'utilisateur !'),
array('repassword','password','Confirmez que le mot de passe est incorrect',0,'confirm'),
array('mot de passe','checkPwd','Le format du mot de passe est incorrect',0,'fonction'),
);
if (!$this->table('yy_common_member')->validate($rules)->create()){
$return_value["status"] = "échec" ;
$return_value["status_code"] = 40 000 ;
$return_value["status_message"] = $this->getError();;
$return_value["data"]= "";
retourner $return_value ;
}autre{
$uid = $this->table('yy_common_member')->add($data);
$data2['uid'] = $uid;
$return_value["status"] = "succès";
$return_value["status_code"] = 20105 ;
$return_value["status_message"] = "";
$return_value["data"]= $this->table('yy_common_member_profile')->add($data2);
retourner $return_value ;
}
Ce qui précède est un extrait de code
défini respectivement
array('onlyuid','','duplicate Identity',0,'unique',1) et array('phone','', ' Le numéro de téléphone portable que vous avez saisi a déjà été enregistré ! ',0,'unique',1), Règles de vérification pour
.
Mais le premier ne prend pas effet, le second peut être utilisé
Rapport d'erreurs
Normal
< /envergure>
Il s'agit évidemment d'une erreur signalée par l'instruction sql. Cela n'a rien à voir avec la vérification. Le seul identifiant inséré est répété
.Quel est le type de données du champ onlyuid dans votre base de données ?
Tout le monde a raison : la raison est dans la base de données, vous essayez d'insérer un identifiant unique en double, et ce champ est évidemment défini pour être unique.
Vérifiez-le. Si la signification littérale de ce champ n'est pas très forte, il est recommandé d'utiliser le formulaire d'incrémentation automatique. Ne sautez pas ce champ directement à chaque fois que vous insérez des données et laissez-le augmenter de lui-même.
Il est également possible que la valeur à insérer dans ce champ ait dépassé sa valeur maximale autorisée.