我有一个问题,如何在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 ;
我想检查代码字段
上是否存在随机字符串答案 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
。