Php 如何查询mysql数据库中的变量(如果存在),如果不插入,如何创建另一个变量?

Php 如何查询mysql数据库中的变量(如果存在),如果不插入,如何创建另一个变量?,php,mysql,Php,Mysql,假设我有一个变量 $id=mt_rand() 如何查询mysql数据库以查看行id中是否存在该变量,如果确实存在,则更改变量$id,一旦该变量对所有其他存储的id都是唯一的,则将其插入数据库中 谢谢你们 'SELECT COUNT(*) as count from table where row_id="'.$variable.'" LIMIT 1' 如果变量是用户输入,或者它将包含多个字母数字字符,请确保对其进行转义 然后获取该行并检查计数是否为1或大于0 如果有,则它存在并重试(在循环中)

假设我有一个变量

$id=mt_rand()

如何查询mysql数据库以查看行id中是否存在该变量,如果确实存在,则更改变量$id,一旦该变量对所有其他存储的id都是唯一的,则将其插入数据库中

谢谢你们

'SELECT COUNT(*) as count from table where row_id="'.$variable.'" LIMIT 1'
如果变量是用户输入,或者它将包含多个字母数字字符,请确保对其进行转义

然后获取该行并检查计数是否为1或大于0

如果有,则它存在并重试(在循环中)

尽管如此,id字段上的自动递增将允许您避免此步骤

$con = mysql_connect("<host>","<login>","<pass>");
if ($con) {
    mysql_select_db('<schemata>', $con);
    $found = false;
    while (!$found) {
        $idIamSearching = mt_rand();
        $query = mysql_query("SELECT count(*) FROM <table> WHERE <idColumnName>='".$idIamSearching."'");
        $result = mysql_fetch_row($query);
        if ($result[0] > 0) {
            mysql_query("INSERT INTO <table> (<column>) VALUES ('".$idIamSearching."')");
            $found = true;
        }
    }
    mysql_close($con);
}
如果变量是用户输入,或者它将包含多个字母数字字符,请确保对其进行转义

然后获取该行并检查计数是否为1或大于0

如果有,则它存在并重试(在循环中)

尽管如此,id字段上的自动递增将允许您避免此步骤

$con=mysql\u connect(“,”,”);
$con = mysql_connect("<host>","<login>","<pass>");
if ($con) {
    mysql_select_db('<schemata>', $con);
    $found = false;
    while (!$found) {
        $idIamSearching = mt_rand();
        $query = mysql_query("SELECT count(*) FROM <table> WHERE <idColumnName>='".$idIamSearching."'");
        $result = mysql_fetch_row($query);
        if ($result[0] > 0) {
            mysql_query("INSERT INTO <table> (<column>) VALUES ('".$idIamSearching."')");
            $found = true;
        }
    }
    mysql_close($con);
}
如果($con){ mysql_select_db(“”,$con); $found=false; while(!$found){ $idIamSearching=mt_rand(); $query=mysql_query(“选择count(*)FROM-WHERE='”“$idIamSearching.”); $result=mysql\u fetch\u行($query); 如果($result[0]>0){ mysql_查询(“INSERT-INTO()值(““$idIamSearching.””); $found=true; } } mysql_close($con); }
您的描述很难理解,因此,这可能会给您一些提示…

$con=mysql\u connect(“,”,”);
$bExists = 0;
while(!$bExists){
    // Randomly generate id variable
    $result = mysql_query("SELECT * FROM table WHERE id=$id");
    if($result){
        if(mysql_num_rows($result) > 0){
        $bExists = 1;
    } else {
        // Insert into database
        $bExists = 1;
    }
}
如果($con){ mysql_select_db(“”,$con); $found=false; while(!$found){ $idIamSearching=mt_rand(); $query=mysql_query(“选择count(*)FROM-WHERE='”“$idIamSearching.”); $result=mysql\u fetch\u行($query); 如果($result[0]>0){ mysql_查询(“INSERT-INTO()值(““$idIamSearching.””); $found=true; } } mysql_close($con); }
你的描述很难理解,所以,这可以给你一些提示

$bExists = 0;
while(!$bExists){
    // Randomly generate id variable
    $result = mysql_query("SELECT * FROM table WHERE id=$id");
    if($result){
        if(mysql_num_rows($result) > 0){
        $bExists = 1;
    } else {
        // Insert into database
        $bExists = 1;
    }
}
1随机生成id变量 2查询数据库中的信息 2.1结果?出口 2.2没有结果?插入

1随机生成id变量 2查询数据库中的信息 2.1结果?出口
2.2没有结果?Insert

explain“一旦变量对所有其他存储的ID都是唯一的”假设我有一个编号10994566,我需要用该特定行中的其他编号检查它,如果它是唯一的,则插入它,如果不生成另一个编号。可能意味着“如果变量不在数据库中”explain“一旦变量对所有其他存储的ID都是唯一的”假设我有一个编号10994566,我需要将它与该特定行中的其他编号一起检查,如果它唯一,则插入它,如果不生成另一个编号。可能意味着“如果变量不在数据库中”,谢谢您的评论。基本上,我正在做的是我正在从头开始创建一个小的在线游戏作为一个项目。当一个用户注册到该站点进行游戏时,我将为他们的角色生成一个随机ID。既然mt_rand不是随机的,我需要检查生成的号码是否已经是某人的id。如果已经是某人的id,则生成另一个id,直到它对该帐户唯一为止。如果这是有意义的:)并且自动增量不是一个选项,我知道它的好处,但这个问题让我困惑:/我能问一下这段代码是什么吗?如果($result[0]>0){[0]是做什么的?非常感谢您的帮助!我在这段代码中没有看到任何循环…它可能会检查数据库中是否存在$id,如果存在,则生成新变量,如果不存在,则插入。因此,如果您的$id存在,则必须再次生成新的$id和查询表。@初学者PHPer$result作为数组获取,[0]是数组项编号0-第一个数组项,即计数(*)从这个查询中。谢谢你的评论。基本上我正在做的是我从头开始创建一个小的在线游戏作为一个项目。当一个用户注册到该网站上玩时,我会为他们的角色生成一个随机ID。现在鉴于mt_rand不是随机的,我需要检查生成的数字是否还不是某人的ID。如果是真的dy Someone id,生成另一个id,直到它对该帐户是唯一的。如果这有意义:)并且自动递增不是一个选项,我知道它的好处,但这个问题让我难住了:/我能问一下这段代码是什么吗?如果($result[0]>0){这个[0]是什么吗do?非常感谢您的帮助!我在这段代码中没有看到任何循环…它可能会检查数据库中是否存在$id,如果存在,则生成新变量,如果不存在,则生成新变量…插入。因此,如果您的$id存在,则必须再次生成新的$id和查询表。@初学者PHPer$结果作为数组获取,[0]是数组项编号0-第一个数组项,即来自该查询的计数(*)。