MySQLi: Inserindo várias linhas com uma instrução preparada

Fiz um script que cria uma string de consulta bruta e insere as centenas de linhas em uma instrução. Ele funciona, mas não oferece as proteções que as instruções preparadas fazem. Em seguida, modifiquei meu script para adicionar instruções preparadas. Funciona, no entanto, é significativamente mais lento. O script com instruções preparadas leva muito mais tempo para inserir as linhas do que o script de consulta bruto, devido ao script que está sendo executado em cada instrução de inserção preparada, uma linha por vez, em vez de inserir centenas de linhas por vez.

Aqui está um trecho do código da declaração preparada:

for( $j = 0; $j < $abilitiesMax - 2; $j++ ){
  $stmtAbility->bind_param('iiiii', $abilityArray[$i]["match_id"] , $abilityArray[$i]["player_slot"],
  $abilityArray[$i][$j]["ability"], $abilityArray[$i][$j]["time"], $abilityArray[$i][$j]["level"] );

  if(  !($stmtAbility->execute()) ){      
   echo "<p>$db->error</p>";
   echo "<p>ERROR: when trying to insert abilities query</p>";
  }
}

Ele faz o trabalho, mas somente após centenas de centenas de inserções. Existe uma maneira de vincular listas ou arrays aos argumentos bind_param () e apenas executar o $ stmtAbility-> execute uma vez ou algum outro método que possa acelerar o desempenho.

Desculpe se isso foi perguntado e respondido antes. Eu olhei em volta por um tempo e encontrei algumas perguntas semelhantes, mas nada que respondesse ao que eu estava pedindo explicitamente.

questionAnswers(1)

yourAnswerToTheQuestion