我想生成一個字符串發佈一個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