生成随机ENUM值[PHP,MySQL]

时间:2013-08-11 02:44:29

标签: php mysql sql

我有一个由几个具有不同数据类型的字段组成的表。 我的任务是创建一个用随机数据填充此表的PHP脚本。我的脚本将包含循环MySQL查询。我知道如何创建查询以生成随机日期整数字符串

我有一个使用 ENUM 数据类型的列,其中包含4个值('已接受','有错误','已完成','失败')。

我需要知道如何生成一个允许我用随机值填写ENUM字段的查询。

如果有人帮忙,我会非常欣赏。

P.S。如果我的问题太愚蠢或不够清楚,我为此道歉。

由于

1 个答案:

答案 0 :(得分:2)

将所有枚举值作为常量放在如下的类中:

<?php
class Status{
    const ACCEPTED= "accepted";
    const WITH_ERRORS= "with errore";
    const DONE= "done";
    const FAILED='failed';
}


$ref = new ReflectionClass('Status');
$statuses = $ref->getConstants();
print_r(statuses );

这应输出:

Array
(
    ['ACCEPTED'] => accepted
    ['WITH_ERRORS'] => with errors
    ['DONE'] => done
    ['FAILED']=> failed
)

然后从$statuses数组中选择一个随机元素,使用array_rand()

echo $statuses[array_rand($statuses)];

当然你可以直接将状态添加到数组中并在其上使用array_rand()而不是使用常量定义整个类,但恕我直言,从长远来看这不是一个好方法。

相关问题