Buongiorno a tutti è da qualche giorno che non riesco più ad inserire i dati sul mio database tramite script php, pur non avendo modificato nulla. Grazie per l'eventuale risposta.
Buongiorno a tutti è da qualche giorno che non riesco più ad inserire i dati sul mio database tramite script php, pur non avendo modificato nulla. Grazie per l'eventuale risposta.
Appare qualche errore? Specifichi tutti i campi non "default" della tabella?
Prova ad incollare la stessa query sotto "query" da phpMyAdmin (all'inizio specifica il tuo database cliccando su "my_vonax", poi "SQL" ed esegui la query).
Ciao!
Ultima modifica di alemoppo : 23-01-2018 alle ore 15.28.24
regolamento altervista_______________ regolamento forum
Non appare nessun errore, il tutto era funzionante sino a qualche giorno fa. Sotto query da phpMyAdmin funziona, proprio non riesco a capire.
Se la query identica funziona su phpMyAdmin, allora c'è qualche problema lato PHP.
Prima prova a impostare un'altra versione di PHP da qui. Se ancora non hai risolto posta il codice.
Ciao!
regolamento altervista_______________ regolamento forum
Grazie per la risposta. Avevo già provato a cambiare versione di PHP ma niente, questo è il codice che funziona ormai da anni e che ho inviato ad un amico che lo utilizza con successo, sempre su altervista:
Codice PHP:
<?php
$file = "******.txt";
$open = fopen($file, "w");
$percorso = file("*******.txt");
while(list(,$value) = each($percorso))
{
list($data, $totale, $attuale, $max, $oramax, $err) = split("[-]", $value);
//list($data, $totale, $attuale, $max, $oramax) = explode("-", $value);
$params["data"] = trim($data);
$params["totale"] = trim($totale);
$params["attuale"] = trim($attuale);
$params["max"] = trim($max);
$params["oramax"] = trim($oramax);
$params["err"] = trim($err);
}
$link=mysql_connect("localhost","vonax","password")
or die ("Non riesco a connettermi al server MySql.");
//echo "Connessione riuscita.";
mysql_select_db ("my_vonax",$link);
$query="INSERT INTO kw VALUES('$data', '$totale', '$attuale','$oramax','$max')
ON DUPLICATE KEY
UPDATE totale ='$totale', attuale ='$attuale', datamax='$oramax', max= '$max'";
$res=mysql_query($query);
for ($m = 1; $m <= 12; ++$m) {
$query = "SELECT SUM(attuale) as gen FROM kw where data LIKE '%%/0$m/2018' OR data LIKE '%%/$m/2018'";
$result = mysql_query($query);
list($gen) = mysql_fetch_array($result);
if ($gen==0){
$gen=0;
}
$ge[$m]=$gen;
$testo = $ge[$m].'-';
$write = fwrite ($open, $testo);
}
fclose($open);
?>
Ultima modifica di alemoppo : 24-01-2018 alle ore 16.08.38 Motivo: tag [php]
Prima di apllicare tale modifica bisogna essere certi dell'errore specifico , una volta individuato l'errore allora si passa verso mysqli http://php.net/manual/en/function.mysql-error.php (vediamo se MySQL rivela qualche errore, dato che non funziona l'inserimento dei dati o l'aggiornamento) effettua anche il var_dump delle variabili man mano che li crei.
Purtroppo non è quello il problema, ho un'altra tabella con mysqli, che come l'altra funzionava regolarmente, che presenta gli stessi problemi. Grazie comunque per la risposta.
Hai provato a vedere cosa ritorna mysql_error()?
Ciao!
regolamento altervista_______________ regolamento forum
mi risponde 0:
Puoi provare facendo un semplice script mysql e vedere mano a mano cosa non funziona facendo debug?
Una cosa tipo:
Ciao!Codice PHP:
<?php
define('NICK','vonax');
define('TABLE', 'test_cancellare');
define('STR','123a');
//connessione
$link = mysql_connect('localhost', NICK, '');
if (!$link) {
die('Not connected : ' . mysql_error());
}
//seleziono db
$db_selected = mysql_select_db('my_'.NICK, $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
//creo una tabella
$result = mysql_query('CREATE TABLE '.TABLE.' (testo VARCHAR(10))');
if (!$result) {
die('Invalid query1: ' . mysql_error());
}
//inserisco una riga
$result = mysql_query('INSERT INTO '.TABLE.' (testo) VALUES (\''.STR.'\')');
if (!$result) {
die('Invalid query2: ' . mysql_error());
}
//leggo dalla tabella
$result = mysql_query('SELECT testo FROM '.TABLE);
if (!$result) {
die('Invalid query3: ' . mysql_error());
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
//confronto il valore
while ($row = mysql_fetch_assoc($result)) {
echo 'Lettura da db: '.$row['testo'].((STR == $row['testo'])?' corrisponde':' non corrisponde a '.STR);
}
mysql_free_result($result);
//elimino la tabella creata
$result = mysql_query('DROP TABLE '.TABLE);
if (!$result) {
die('Invalid query5: ' . mysql_error());
}
mysql_close($link);
regolamento altervista_______________ regolamento forum
il test funziona, questo è il risultato: "Lettura da db: 123a corrisponde". Avevo già fatto una prova di scrittura con una nuova tabella, il problema è che non riesco a scrivere su quella che avevo in uso.
Grazie per l'attenzione.
Ciao.
La tabella in questione ha 5 colonne? Oppure ha altri campi che non hanno un valore default?
Ciao!
regolamento altervista_______________ regolamento forum
Ha 5 colonne.
Se può essere utile per la risoluzione del problema, volevo segnalare che inserendo nella insert i valori direttamente, la tabella viene aggiornata, mentre se lo faccio tramite le variabili non accade nulla. Preciso al riguardo che le variabili contengono i valori che le sono stati passati. Grazie ed un saluto.
Bene, ci stiamo avvicinando al problema!
Ora prova stampando la variabile $query per vedere cosa ritorna, ad esempio fai:
Oppure stampalo su un file con la file_put_contents()Codice PHP:
echo $query;
Ciao!Codice PHP:
file_put_contents('test.txt',$query);
regolamento altervista_______________ regolamento forum
Grazie dell'aiuto, ho risolto, il problema era dovuto al campo data che comprendeva anche l'ora, dato quest'ultimo che non doveva essere inserito. Ho modificato la variabile troncando la parte che non era d'interesse e va bene. Resta tuttavia da capire come mai finora ha funzionato e sopratutto come mai in un altro sito con la stessa tabella funziona. Misteri della vita.....e dell'informatica!!!!
Un saluto.