【发布时间】:2014-10-16 03:16:34
【问题描述】:
您好,我正在使用以下函数来确保表中不存在重复的随机 ID,并确保表中不存在重复的随机 ID,但我收到错误 可以'不要在写上下文中使用方法返回值......
function postex($conn)
{
$query = $conn->prepare('SELECT 1 FROM posts
WHERE postid = :rand');
do {
$random_string = generateRandomString(5);
} while
(
$query->execute(array(':rand' => $random_string))->fetch(PDO::FETCH_ASSOC) = false
);
return $random_string;
}
是不是因为 SQL 出了问题?
此外,我认为当越来越多的 ID 在表中累积时,这将是一个艰难而缓慢的过程。确保表中不存在重复的随机 ID 的最佳方法是什么?
谢谢
【问题讨论】:
-
为什么不使用
auto_increment列? -
@RicardoAlvaroLohmann 好吧,我也可以选择该选项,如果没有更好的选择,我将更改为该选项。我想知道是否有比大多数人在stackoverflow建议的这个函数更好的方法来查找随机查询
-
您希望它在 fetch() 返回 FALSE 时停止,对吗?请检查您的 while 条件。
-
你是在分配,而不是比较
-
@KenCheung 如果存在类似的 id,知道如何在查找时做得更好吗?我认为当桌子增加时这会很麻烦不是吗?