如何将随机值插入数据库mysql?

时间:2014-01-06 15:40:55

标签: php mysql arrays random

如何将随机值插入数据库mysql?

好的,当我加载此代码时,我会有像这样的随机数字格式

5,3,1,6,4,

我希望将5,3,1,6,4插入数据库mysql(1行1列),我该怎么办?

<?
    $cards = array();
    for ($i = 0; $i < 5; $i++) 
            {
            $card = mt_rand(1, 6); 
            if(!in_array($card, $cards))
                    {
                $cards[$i] = $card;
            }
                else
                    {
            $i--;
            }
            } 
        foreach ($cards as $cards) 
            { 
        echo $cards.","; 
            }
?>

3 个答案:

答案 0 :(得分:1)

它与插入非随机值有何不同?

mysqli_query($link, "INSERT INTO yourtable (id, cards) VALUES (NULL, '$cards')");

或类似的东西。

答案 1 :(得分:0)

Pure(My)SQL解决方案:

INSERT INTO test( x, y )
SELECT 10*rand(),
       10*rand()
FROM information_schema.columns
LIMIT 10;

演示:http://www.sqlfiddle.com/#!2/be6e5/2

答案 2 :(得分:0)

你所描述的最简单的方法就是@Martin回答。

然而,这可能会让你后来搞砸了。理想情况下,您不希望在RDBMS字段中存储列表;它破坏了建立数据库的全部目的。

如果你制作一个类似

的表格
ID, cardPosition, cardID

你可以这样做:

$insert = $db->prepare("INSERT INTO cardpositions (cardPosition, cardID) VALUES (:cardPosition, :cardID)");
foreach ($cards as $cardPosition=>$card) 
        { 

    $insert->execute(array(':cardPosition' => $cardPosition, ':cardID' => $card));
        }

OR

这样做的方法不对,但你似乎想要的是:

$cardlist = implode(",",$cards);  //now you have a comma separated list without the trailing comma

然后你这样做,如果PDO:

$insert = $db->prepare("INSERT INTO cardpositions (cardlist) VALUES (:cardlist)");
$insert->execute(array(':cardlist' => $cardlist));

或者如果是mysqli:

mysqli_query($link, "INSERT INTO yourtable (cardlist) VALUES ('$cardlist')");