如果存在于sql上,则生成随机的新随机字符串

时间:2012-09-24 17:34:04

标签: php sql

我有一个问题,如何在PHP中创建一个随机字符串并检查SQL是否存在该字符串,如果存在,则创建一个新字符串,但如果它不存在则使用它

我有这段代码来创建随机字符串:

$original_string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$random_string = get_random_string($original_string, 14);
echo $random_string;

MySQL我想检查随机字符串是否已被使用是这个:

CREATE TABLE `en_videos` (
  `id` int(11) NOT NULL auto_increment,
  `name` text,
  `code` text,
  `description` text,
  `hits` int(11) default NULL,
  `program` int(11) default NULL,
  `lenght` int(11) default NULL,
  `hd` int(11) NOT NULL default '1',
  `subtitles` int(11) NOT NULL default '1',
  `type` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

我想检查代码字段

上是否存在随机字符串

2 个答案:

答案 0 :(得分:1)

尝试:

$original_string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$random_string = '';

do {
    $random_string = get_random_string($original_string, 14);
} while ($mysqli->query('SELECT 1 FROM `en_videos`
             WHERE `code` = "' . $random_string . '"')->fetch_row());

echo $random_string;

这假设您正在使用mysqli库。如果没有,请使用任何提取行作为条件处理程序。

假设您正在使用mysql_*函数(在这种情况下,我建议您查看其他mysql libraries):

$original_string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$random_string = '';

do {
    $random_string = get_random_string($original_string, 14);
} while ($mysql_num_rows(mysql_query('SELECT 1 FROM `en_videos`
             WHERE `code` = "' . $random_string . '"')));

echo $random_string;

答案 1 :(得分:0)

select count(*) as found_num
from en_videos
where `code` = '$random_string'
如果找不到字符串,则

返回0;如果是,则返回> 0