[英]array_rand() executes all element sql statements php
我有下 function 來保存帖子
//save post
function savePost($id_post,$table,$pdo){
$sql->execute();
return "saved post".$id_post;
}
現在我制作一個數組來保存隨機帖子
$posts = array();
$posts[] = savePost("1",$table,$pdo);
$posts[] = savePost("2",$table,$pdo);
$posts[] = savePost("3",$table,$pdo);
$posts[] = savePost("4",$table,$pdo);
$posts[] = savePost("5",$table,$pdo);
我從$posts
返回一個隨機元素,以便$sql->execute();
只有這個特定的帖子。
echo $posts[array_rand($posts)];
它回顯了一個唯一的隨機元素,例如saved post4
,但在表中所有數組元素都已執行,並且所有元素都保存了它們的帖子。 做錯了什么?
我只想保存隨機值。
謝謝你。
echo $posts[array_rand($posts)];
只是從屏幕上的$posts
輸出一個隨機條目。 它對保存數據沒有任何作用。 根據您顯示的代碼,保存所有帖子的過程已經發生(通過重復調用savePost
),甚至在您生成隨機數之前。
如果您只想保存一個隨機帖子,那么您可以創建一個包含所有潛在帖子 ID 的數組,然后選擇一個進行保存,並將隨機選擇的條目傳遞給 savePost 方法。
例如:
$postIDs = array(1, 2, 3, 4, 5);
echo savePost($postIDs[array_rand($postIDs)], $table, $pdo);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.