Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite Pessoal!
Tenho um pequeno problema aqui e gostaria de contar com a ajuda do pessoal mais experiente!
O problema é o seguinte, tenho que inserir alguns dados no banco, dados que eu pego com um foreach (conexaoPDO). Estou fazendo o insert com o seguinte formato
"INSERT INTO tabela (coluna1, coluna2, coluna3,...) VALUES ($coluna[1], $coluna[2], $coluna[3],...) , ($coluna[1], $coluna[2], $coluna[3],...), ($coluna[1], $coluna[2], $coluna[3],...) etc"
Esses VALUES eu pego de um foreach. O problema é que existe um limite para o número de linhas que e dados que o MYSQL aceita simultaneamente, ai ele não inclui quando são muitos.
Um exemplo parecido é o seguinte:
<?php
$usuarios = array();
$usuarios[] = array('nome' => 'Thiago', 'email' => 'contato@thiagobelem.net');
$usuarios[] = array('nome' => 'Fulano da Silva', 'email' => 'fulano@email.com');
$usuarios[] = array('nome' => 'Ciclano', 'email' => 'ciclano@uol.com.br');
// Início da consulta
$sql = "INSERT INTO usuarios (id, nome, email) VALUES";
// Para cada elemento de $usuários, faça:
foreach ($usuarios as $usuario) {
$nome = $usuario['nome'];
$email = $usuario['email'];
// Monta a parte consulta de cada usuário
$sql .= " (NULL, '{$nome}', '{$email}'),";
}
// Tira o último caractere (vírgula extra)
$sql = substr($sql, 0, -1);
// Executa a consulta
mysql_query($sql);
// Pega o número de registros inseridos
$cadastrados = mysql_affected_rows();
echo 'Usuários cadastrados: ' . $cadastrados;
?>
Como eu posso "agrupar" os dados do foreach, ou até mesmo colocar o insert la dentro, para que ele ao inves de inserir todos em um só insert ele faça um agrupamento e faça um insert a cada 5 avanços do loop, por exemplo?
vlw, obrigado!
Carregando comentários...