MySql - Deixando de fazer INSERTs

Pessoal, existe alguma possibilidade do mysql server deixar de fazer inserts se eles forem muito curtos e numa quantidade grande?
Tenho aproximadamente 1700 inserts pra fazer, apenas adicionando 2 campos.
Estou perdendo praticamente 200 inserts.

Se eu pegar os inserts que o banco não grava, copiar e colar dentro do phpmyadmin, ele grava todos eles, o que indica que a sintaxe está correta.
Tentei usar transação mas o problema persiste, alguém tem alguma dica?

Rodrigo

Como são esses inserts?

Todos possuem ; no final?

ou é um INSERT com 1700 linhas de registro?

Se for 1 INSERT só ele não vai fazer todos mesmo.

Robert, é um laço, lendo linhas de um arquivo texto e dando insert no banco usando sc_exec_sql. Estou pelo celular, quando eu chegar em casa posto o código aqui.
Valeu.

Deve ser o timeout do php.
Veja se colocando uma dessas diretivas ou todas elas resolve o seu problema:

ini_set(‘mysql.connect_timeout’,‘0’);

ini_set(‘max_execution_time’, ‘0’);

set_time_limit(0);

São 1700 inserções individuais e não 1 só com 1700 linhas.

Esse trecho de código está dentro de um laço while, que percorre as linhas de um arquivo de idiomas (pt_br.lang.php) e só insere a linha caso ela ainda não exista na tabela. Esse arquivo possui 1700 linhas, mas com a tabela limpa, todas as vezes, só foram inseridas exatamente 1503.

$sql = "SELECT chave, $idioma FROM idiomas WHERE chave = '$chave'"; sc_lookup(ds_chave, $sql); if (empty({ds_chave})) { $sql = "INSERT INTO idiomas (chave, $idioma, status) VALUES ('$chave', '$conteudo', '1')"; sc_exec_sql($sql); }

Estou tentando criar um meio do próprio usuário traduzir seu sistema. Lendo os arquivos lang, armazenando numa tabela pro usuário poder modificar e gerando os arquivos de volta com a tradução que ele fez. Se alguém tiver interesse, a minha intenção é compartilhar depois. Tá quase tudo pronto, só falta descobrir esse lance do mysql não inserir os registros e deixar o visual das apls bonitinho.

Rodrigo

Testou a dica do Saulo?

Ainda não. Na verdade quando acabei de postar eu bati o olho num trecho do código no final da função que deleta alguns registros. To tentando relembrar a lógica kkk mas acho que foi cagaço meu mesmo!
Vou ter que pedir perdão aos colegas rsrsrs.

xD acontece brother.

Hehehe, espero que alguém tenha interesse, pq tá ficando legalzinho. Só vou precisar testar no provedor depois (linux), pq no uindous tá tudo lindo rsrsrs.

A idéia é fazer uma primeira importação dos arquivos para a tabela e a partir daí priorizar os dados da tabela.
Por mais que eu mande reimportar, a rotina irá ignorar os registros que já tenham conteúdo, priorizando a tabela.
Fiz tb pensando em vários idiomas, bastando chamar as funções de importar ou exportar pra cada idioma:

function importa_idioma($arquivoIdioma, $idioma, $limpaBase)
importa_idioma(“pt_br.lang.php”, “pt_br”, false);
importa_idioma(“en_us.lang.php”, “en_us”, false);
importa_idioma(“es.lang.php”, “es”, false);

function exporta_idioma($arquivoIdioma, $idioma)
exporta_idioma(“pt_br.lang.php”, “pt_br”);
exporta_idioma(“en_us.lang.php”, “en_us”);
exporta_idioma(“es.lang.php”, “es”);

A cada exportação (geração de novos arquivos de idioma na pasta lang, a rotina fará um backup dos arquivos atuais em um diretório criado dentro de ‘lang’. O nome do diretório inclui data e hora pra separar cada exportação. Aqui é que sei que vai dar bronca no provedor (permissão, aliás, falta dela).

A tabela de idiomas tem os campos id (AutoIncremento), chave, pt_br, en_us, es e status. No meu caso tenho o sistema com 3 idiomas. Se o sistema tiver mais ou menos, basta criar a tabela de acordo, mantendo as colunas id, chave e status. O nome dos campos de idiomas seguem o mesmo padrão do 2º parâmetro usado nas funções.

Na importação, o 3º parâmetro serve pra dar um TRUNCATE na tabela de idiomas.

Vamos ver no que dá.

1 Curtida

Muito boa a ideia man, isso com certeza será de interesse de muitos aqui no forum.

Se não me engano o programa LiveZilla faz isso. Muito bom.

Eu to todo atrapalhado é com o lance de charset e collation.
Não to acertando a forma correta de exportar da tabela (latin1-general-ci) pra o arquivo lang.
Alguém pode me ajudar?

Segue vídeo do funcionamento da tradução dinâmica.
Perdão pelo ruído no áudio, esqueci o microfone ligado.

http://www.screenr.com/0jr7

Caso achem útil eu posso disponibilizar o código, que é bem simples de implementar, basta que a hospedagem permita acesso aos arquivos e diretórios via programação.

Agora vou precisar aplicar a questão dos idiomas no sistema.
Como é um sistema multiempresa usando único banco, preciso aprender como implementar a tradução cliente por cliente.
Tenho um cadastro de empresas e vou colocar um campo para que seja configurado o idioma de cada um.
O que preciso é saber como alterar o idioma dinamicamente, após o cliente fazer o login.

Grande abraço a todos.
Rodrigo