在数据库

时间:2015-12-23 00:52:27

标签: php mysql random

我有一个包含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);
  }
?>

2 个答案:

答案 0 :(得分:-1)

您将获得PHP中的随机数并将其传递给MySQL,该时间每5秒钟使用一次。相反,您需要在MySQL中执行随机部分,以便每次都随机。 (参见:MYSQL insert random from list

$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";

答案 1 :(得分:-2)

试试这个:

  $numb = array('101','245','342','894','45');

或者这个:

array_rand(array_flip($numb), $n);

请查看此详细信息:http://php.net/manual/en/function.array-rand.php