首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入数据库中不存在的if

问插入数据库中不存在的if
EN

Stack Overflow用户
提问于 2016-05-29 12:05:04
回答 1查看 61关注 0票数 0

我创建了一个函数,它查找特定列中的所有行(记录),生成一个随机数,然后检查该列是否已经存在,如果生成的随机数存在,则重新启动函数(递归),如果它不存在,然后将其作为新的插入。

代码语言:javascript
复制
$verifs = mysqli_query($conlink, 'SELECT verif FROM memebers');
$records = array();
while($record = mysqli_fetch_array($verifs,MYSQLI_NUM)) {
    $records[] = $record[0];
}
function randomize(){
    $rand= rand(1,5);
    if(in_array($rand, $GLOBALS['records'])){
        randomize();
    }else{
        return $rand;
    }
}
mysqli_query($conlink, "INSERT INTO `memebers`(`verif`) VALUES (".randomize().")");

我希望每次刷新php页面时都必须添加一个数字。

是这样的,但是当我到达3或4张记录时,刷新页面并不会添加任何内容!因此,return语句必须防止函数是递归的。我的逻辑有什么问题吗谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-29 12:24:35

在我看来,您没有正确地使用回调函数。如果您不知道,当您在函数中使用一个函数时,实际上您必须在参数中传递该函数。在参数中有一个函数的函数称为回调函数,您可以在下面的文章中更多地了解它们:What is a callback function and how do I use it with OOP

然后,我将将您的randomize函数更改为以下代码:

代码语言:javascript
复制
function randomize($callbackRandomize){
    $rand= rand(1,5);
    if(in_array($rand, $GLOBALS['records'])){
        return $callbackRandomize($callbackRandomize);
    }else{
        return $rand;
    }
}

并将最后一行代码更改为:

代码语言:javascript
复制
mysqli_query($conlink, "INSERT INTO `memebers`(`verif`) VALUES (".randomize('randomize').")");

如果这对你有用的话请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37509692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档