我想生成一个字符串发布一个URL。然后使这个帖子的网址如下:http://www.mydomain.com/post/afCeYk
,并将此网址存储在mysql中。为了避免重复url
,我认为首先应该检查mysql是否url
已经存在。在我的代码中,我只检查一次,我无法确保第二个生成字符串尚未存在。那么我该如何做一个循环?PHP生成一个字符串,并从MySQL检查不存在
$shufstr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$rdstr = substr(str_shuffle($shufstr),0,6);
$query = mysql_query("select * from table where post_url = '".$rdstr."'");
if(mysql_num_rows($query)>0){
//insert the url rules into db
}else{
//generate a new string and check the db again
}
如何制作一个循环?真的吗?你有没有搜索?无论如何,这是一个糟糕的应用程序 - 随着URL的消耗,它会变得越来越慢。除非您需要难以猜测的网址,否则请使用自动增量ID。 – 2012-04-27 22:30:05
我的建议是在列中添加一个唯一的键,以防止重复。 – 2012-04-27 22:30:26
请停止使用古老的'mysql_ *'函数编写新代码。他们不再被维护,社区已经开始[弃用流程](http://news.php.net/php.internals/53799)。相反,您应该了解准备好的语句并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。如果你关心学习,[这里是一个很好的PDO相关教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – 2012-04-27 22:42:44