我有一个由5个数字组成的数组。我使用事件调度每隔5秒插入一行,但它只插入第一个值。如何在mysql中的每次插入时插入不同的数组值。
这是我的代码:
<?php
require_once('con.php');
$numb = array(101,245,342,894,45);
$random = array_rand($numb);
for($a=0;$a<=5;$a++)
{
$query = "CREATE EVENT myEvent1 ON SCHEDULE EVERY 5 SECOND DO BEGIN INSERT INTO emp(emp_id) VAlUES('$numb[$random]'); END";
$res = mysqli_query($con,$query);
}
?>
您将在PHP
中获得随机数,并将其传递给MySQL
,每5秒使用一次。相反,你需要在MySQL
中做随机部分,这样你每次都是随机的。(参考此:MYSQL从列表中随机插入)
$query = "CREATE EVENT myEvent1 ON SCHEDULE EVERY 5 SECOND DO BEGIN INSERT INTO emp(emp_id) VAlUES(ELT(0.5 + RAND() * 5, 101, 245, 342, 894, 45)); END";
试试这个:
$numb = array('101','245','342','894','45');
或者这个:
array_rand(array_flip($numb), $n);
查看此了解更多信息:http://php.net/manual/en/function.array-rand.php