我尝试使用Twitter功能登录。
如果我的数据库中已存在twitter返回的用户名,我正在为该用户创建一个新的用户名。
以下是我的代码
class myclass{
function getusername($username){
global $db;
$sql ="select * from us_signup where username ='".$username."'";
echo $sql;
$results = $db->rawQuery($sql);
if(!empty($results)){
echo 'if';
print_r($username);
$username = $username.rand(0,1000);
$this->getusername($username);
}else{
echo "else";
print_r($username);
return $username;
}
}
function insertintodb(){
echo "oldusername : ".$username;
$username = $this->getusername($username);
echo "newusername : ". $username;
}
}
1)insertintodb
调用getusername,其中currentusername来自twitter
2)getusername
在数据库中检查它
3)如果用户名存在于数据库中,那么它会向其添加一个随机数,然后自行调用
4)如果用户名不存在于数据库中,则返回用户名
5)getusername
调用自己,直到找到数据库中不存在的用户名
我的问题是
我正在使用' sugumar'来调用函数getusername
。存在于数据库中
所以它再次使用newusername
' sugumar1234'(1234是一个随机数可以是任意数字)。 ' sugumar1234'不存在于数据库中,因此我希望它返回' sugumar1234'但它什么都不返回
打印输出后
oldusername:sugumarselect * from us_signup where username =' sugumar' ifsugumarselect *来自us_signup,其中username =' 1234' else1234newusername:
答案 0 :(得分:3)
如果我理解正确,代码的return
部分似乎缺少if
语句。
$this->getusername('1234');
应该是
return $this->getusername('1234');