hai usato dei backtick e non gli apici normali e dentro le stringhe doppie se non erro hanno un significato particolare
o li sostituisci con gli apici singoli oppure li backslashi
hai usato dei backtick e non gli apici normali e dentro le stringhe doppie se non erro hanno un significato particolare
o li sostituisci con gli apici singoli oppure li backslashi
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
Tanto per cambiare mi dice che le email sono inserite correttamente ma nel database non ci sono andate a finire...Originariamente inviato da daniele_dll
hai usato dei backtick e non gli apici normali e dentro le stringhe doppie se non erro hanno un significato particolare
o li sostituisci con gli apici singoli oppure li backslashi
ecco il codice corretto
Codice PHP:
<?
//connessione al database (i dati li ho tolti)
$file_email = "email.txt";
$tabella = "indirizzi";
$conn = mysql_connect($host, $username, $password) or die("errore nella connessione al database");
mysql_select_db($database, $conn) or die("errore nella selezione del database");
$sql = "CREATE TABLE IF NOT EXISTS `".$tabella."` (email varchar(20) NOT NULL)";
$query = mysql_query($sql) or die('errore nella query');
foreach(file($file_email) as $email) {
$sql = "INSERT INTO \"$tabella}\" (email) VALUES (\"{$email}\")";
}
echo "Mail inserite correttamente nel database ".$database." nel server ".$host.". Ora le mail sono raggiungibili in ".$tabella;
?>
Originariamente inviato da Tr|k`Tr4k
Tanto per cambiare mi dice che le email sono inserite correttamente ma nel database non ci sono andate a finire...
ecco il codice corretto
Codice PHP:
<?
//connessione al database (i dati li ho tolti)
$file_email = "email.txt";
$tabella = "indirizzi";
$conn = mysql_connect($host, $username, $password) or die("errore nella connessione al database");
mysql_select_db($database, $conn) or die("errore nella selezione del database");
$sql = "CREATE TABLE IF NOT EXISTS `".$tabella."` (email varchar(20) NOT NULL)";
$query = mysql_query($sql) or die('errore nella query');
foreach(file($file_email) as $email) {
$sql = "INSERT INTO \"$tabella}\" (email) VALUES (\"{$email}\")";
}
echo "Mail inserite correttamente nel database ".$database." nel server ".$host.". Ora le mail sono raggiungibili in ".$tabella;
?>
Quello che ti dice non conta... te lo dice in qualsiasi caso... non c'è nessuna condizionee prima della stampa.
Chiaro che no inserisce... hai ill codice della query SENZA l'inserimento....
così dovrebbe andare... o almeno a me va una cosa pressochè identica in un altro script...
foreach(file($file_email) as $email) {
$sql = "INSERT INTO $tabella (email) VALUES ($email)";
$query = mysql_query($sql) or die('errore nella query');
}
certo però che se pensi di scrivere l'sql dentro una vaeriabile e vede4rlo magicamente comparire nel database... uana ripassatina ad un manuale di php ogni tanto ci vorrebbe eh ...![]()
facendo cosi' mi diceOriginariamente inviato da }gu|do[z]{®©
foreach(file($file_email) as $email) {
$sql = "INSERT INTO $tabella (email) VALUES ($email)";
$query = mysql_query($sql) or die('errore nella query');
}
errore nella query...
ora provo l'altro che mi hai mandato
ehm ...
mettere invece
or die("Errore nella Query!
{$query}
" . mysql_error());
mi sa che vi risulterebbe + comodo per capure quale possa essere il problema ^^
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
ottimo guido, con il codice che mi hai mandato in privato mi ha inserito correttamente tutti gli indirizzi.
Posto il codice nel caso serva a qualcuno
Ora provo con quello che ha scritto daniele tanto per vedere l'errore qual'era.Codice PHP:
<?php
$_CFG['file'] = 'file.txt';
$_CFG['separatore'] = ',';
$_CFG['db_host'] = 'host';
$_CFG['db_user'] = 'user';
$_CFG['db_pwd'] = 'password';
$_CFG['db_name'] ='nome_database';
$_CFG['db_table'] = 'nome_della_tabella';
########################
$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("impossibile connettersi a mysql");
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";
?>
P.S. Guido, ora per l'id come si fa?
ecco l'errore che da:Originariamente inviato da daniele_dll
ehm ...
mettere invece
or die("Errore nella Query!
{$query}
" . mysql_error());
mi sa che vi risulterebbe + comodo per capure quale possa essere il problema ^^
Errore nella Query!
You have an error in your SQL syntax near '@email.it )' at line 1
sostituisci $query con $sql cosi vediamo la query per intero
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
Errore nella Query!Originariamente inviato da daniele_dll
sostituisci $query con $sql cosi vediamo la query per intero
INSERT INTO indirizzi (email) VALUES (triktrak@email.it )
You have an error in your SQL syntax near '@email.it )' at line 1
$sql = "INSERT INTO `{$_CFG['db_table']}` VALUES ($values);";
direi che ti/vi siete scordati gli apici![]()
$sql = "INSERT INTO {$_CFG['db_table']} VALUES ('{$values}');";
cosi magari va meglio
------
cmq ... stai facendo una newsletter non una mailing list![]()
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand