插入大约30次MYSQL


Inserts about 30 times MYSQL

这个php应该根据"d1"中是否选择了"d2"插入。它为"d1"中的每一行插入大约30次。我一直在使用While,从来没有遇到过这个问题,知道为什么会发生这种情况吗?

$query = mysqli_query($connection, 'SELECT * FROM '.$SETTINGS["d1"]);     
while($query_array = mysqli_fetch_array($query)){   
    $connection_main = mysqli_connect($SETTINGS["hostname"], $SETTINGS["mysql_user"], $SETTINGS["mysql_pass"], 'u_db_main_'.$query_array['id']);
    $dayofweek = strtolower(date('l'));
    $query2 = mysqli_query($connection_main, 'SELECT * FROM '.$SETTINGS_MAIN["d1"].' WHERE '.$dayofweek.' ="1"');
  while($query2_array = mysqli_fetch_array($query2)){   
       mysqli_query($connection_main, "INSERT INTO ".$SETTINGS_MAIN["d2"]." (c1) VALUE ('".$query2_array['data_1']."')");
       $id = mysqli_insert_id($connection_main);
       calc_function($id);
  }
}

函数calc_function中没有INSERTS,但确实使用了一个全局变量来获取相同的变量,这可能是在调用插入吗?

function calc_function($id){
   global $connection_main;
   global $SETTINGS_MAIN;
   //rest of function below

我已经为此工作了一周,并测试了所有内容!任何帮助都将不胜感激!

您的问题是试图对fatch和insert使用相同的连接资源。一旦在该连接上运行另一个查询,就会丢失以前的结果。使用mysqli_fetch_all()从$query2中获取所有结果,然后重新分配数组并运行插入查询。