Ho necessità di copiare circa 1200 indirizzi email, per ora li ho salvati da un db e li ho messi in un file txt ma dovrei metterli in una tabella di un'altro db.
Gia' tempo fa lo feci con l'aiuto di guidoz, solo che ora non so perche' ma quel codice non mi funziona piu'.
Ve lo incollo:
Codice PHP:
<?php
$_CFG['file'] = 'email_nuove.txt';
$_CFG['separatore'] = ',';
$_CFG['db_host'] = 'miohost';
$_CFG['db_user'] = 'user';
$_CFG['db_name'] = 'utente';
$_CFG['db_pwd'] = 'password';
$_CFG['db_table'] = 'indirizzi_email';
########################
$righe = file($_CFG['file']);
$newrighe = array();
foreach ($righe as $riga) if(trim($riga) !='') $newrighe[] = $riga;
@mysql_connect($_CFG['db_host'],$_CFG['db_user'],$_CFG['db_pwd'])
or die (mysql_errno() . ": " . mysql_error());
mysql_select_db($_CFG['db_name']);
echo 'Inserimento di '.count($newrighe).' record in corso....
';
$ins = 0;
foreach ($newrighe as $riga)
{
$contenuto = explode($_CFG['separatore'],$riga);
$values='';
foreach ($contenuto as $elem)
$values .= "'".mysql_escape_string($elem)."',";
$values = substr($values, 0, -1);
$sql = "INSERT INTO `{$_CFG['db_table']}` VALUES ($values);";
if(!mysql_query($sql)) echo "problemi con la query: $sql
[b]".mysql_error().'[/b]
';
else $ins++;
}
mysql_close();
echo "Inseriti con successo $ins record";
?>
Tutti i file li ho messi in un file chiamato email_nuove.txt e sono messi in colonna e separati da una virgola, ma ad ogni inserimento mi dice:
problemi con la query: INSERT INTO `indirizzi_email` VALUES ('indirizzo@email.it','\n');
Column count doesn't match value count at row 1
Cosa posso fare?
Oppure posso copiare in qualche altro modo gli indirizzi da un db all'altro tramite phpmyadmin?