"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso inserir com eficiência vários pontos de dados de um array no MySQL usando instruções preparadas em PHP e PDO?

Como posso inserir com eficiência vários pontos de dados de um array no MySQL usando instruções preparadas em PHP e PDO?

Publicado em 2024-11-12
Navegar:575

How Can I Efficiently Insert Multiple Data Points from an Array into MySQL Using Prepared Statements in PHP & PDO?

Inserindo vários dados no MySQL usando instruções preparadas com PHP e PDO

Em cenários como inscrição on-line, os usuários geralmente selecionam vários itens que desejam comprar, inscrever-se ou juntar. Esses itens geralmente são armazenados em arrays para facilitar seu processamento. No entanto, inserir dados de arrays em bancos de dados MySQL usando instruções preparadas em PHP e PDO pode ser um desafio. Este artigo explora métodos para superar esse desafio.

Uma abordagem é usar um loop for e executar várias instâncias da instrução SQL, conforme visto abaixo:

for($j = 0; $j < (count($data)-1); $j  ) {
   $stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
   $stmt->execute(array($memberid, $data[$j]));
}

Embora esse método seja relativamente simples, ele apresenta problemas de desempenho ao lidar com grandes conjuntos de dados.

Uma abordagem mais eficiente é construir dinamicamente uma única instrução SQL. Pode-se conseguir isso iterando sobre o array e gerando uma lista separada por vírgulas de espaços reservados e valores entre parênteses:

$sql = 'INSERT INTO table (memberID, programID) VALUES ';
$insertQuery = array();
$insertData = array();
foreach ($data as $row) {
    $insertQuery[] = '(?, ?)';
    $insertData[] = $memberid;
    $insertData[] = $row;
}

if (!empty($insertQuery)) {
    $sql .= implode(', ', $insertQuery);
    $stmt = $db->prepare($sql);
    $stmt->execute($insertData);
}

Este método combina efetivamente os dados individuais em uma única consulta para inserção no banco de dados. Ele garante processamento eficiente e sobrecarga reduzida, tornando-o adequado para cenários com grandes conjuntos de dados ou quando a otimização do desempenho é crítica.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3