【发布时间】:2022-01-23 17:13:46
【问题描述】:
我正在尝试让我的网页从数据库中随机选择一篇帖子,但它一直返回错误。该错误将第三个查询称为布尔而不是对象,因此代码有问题。我只是不知道是什么。 P.S 我知道其余的代码可能很草率,只需要 mt_rand 函数的帮助。
<?php include('enter-message.php');
$query= $connect->prepare("SELECT MAX( id ) AS 'max_id' FROM userinfo")or die(mysqli_error($connect));;
$query->execute();
$query->bind_result($maximum);
while($query->fetch()){
//print_r($maximum);
}
$query= $connect->prepare("SELECT MIN( id ) AS 'max_id' FROM userinfo")or die(mysqli_error($connect));;
$query->execute();
$query->bind_result($minimum);
while($query->fetch()){
//print_r($minimum);
}
$request=$connect->prepare('SELECT * FROM userinfo ORDER BY mt_rand($minimum,$maximum) LIMIT 1');
if($request->execute()){
while($request==$secret){
echo("<div class='secrets-box'>");
echo($secret['nickname']);
echo($secret['secret']);
echo("</div>");
}
【问题讨论】:
-
mt_rand是 PHP 函数,而不是 MySQL 函数。 stackoverflow.com/questions/32236915/… 可能对你有帮助 -
在代码中使用
die(mysqli_error($conn));是一个非常糟糕的主意,因为它可能会泄露敏感信息。更多解释见这篇文章:mysqli or die, does it have to die? -
请注意,(min, max) 范围内的随机数可能无法匹配未来某处的用户。当条目被删除时,会有间隙。