我如何查询mysql数据库中的变量,如果存在则创建另一个变量,如果没有插入?

时间:2011-03-31 20:52:35

标签: php mysql

说我有一个变量

$ id = mt_rand();

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

谢谢你们。

3 个答案:

答案 0 :(得分:1)

$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)

'SELECT COUNT(*) as count from table where row_id="'.$variable.'" LIMIT 1'

如果变量是用户输入或者它将包含超过字母数字的字符,请确保转义该变量

然后获取行并检查count是1还是大于0

如果有,则存在并再次尝试(循环)

但是,id字段的自动增量将允许您避免此步骤

答案 2 :(得分:0)

$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没有结果?插入