说我有一个变量
$ id = mt_rand();
如何查询mysql数据库以查看变量是否存在于行id中,如果它确实存在则更改变量$ id,一旦变量对所有其他存储的id唯一,然后将其插入数据库中?
谢谢你们。
答案 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没有结果?插入