Ethernet shield

Salve ho un problema tra php e db mysql. Praticamente ho una pagina php(per la comunicazione tra arduino e host) che con il database 5.1 di altervista non dava problemi, ma dopo aver fatto l’aggiornamento al 5.6 mi compare : Incorrect integer value: ‘’ for column ‘id’ at row 1.
come posso risolvere?
il codice è il seguente

<?php
// refresh php
header("Refresh: 1; url=" . $_SERVER["PHP_SELF"]);

// dichiaro le variabili che ricevo da arduino 
//settype ( $sec, "integer" );
$id = $_GET['id'];
$temperatura = $_GET['t'];
$umidita = $_GET['h'];
$luminosita = $_GET['pluce'];
$pioggia = $_GET['pioggia'];
$uv = $_GET['uv'];
$pressione = $_GET['pres'];
$altitudine = $_GET['alt'];
//$tmsp = strtotime("now"); 
//$data = date('d m Y',$tmsp);
//setlocale(LC_TIME,"it_IT");
$data = date("d m Y H:i:s");
sleep(1);

$tempo = $_GET['sec'];

// effettuo la connessione al mysql 

$host = "www.MIOSITO.altervista.org";
$database = "MIODB"; 
$password = "MIAPASS";
$link = mysql_connect($host, $database, $password); 

if (!$link) 
{
die('non connesso : ' . mysql_error());
}
// effettuo la connessione al database mysql
$db_selected = mysql_select_db("MIO DB", $link);
if (!$db_selected) 
{
die ('Non è grave; possibile connettersi al database : ' . mysql_error()); 
}
// seleziono la tabella nella quale memorizzare i dati 
$query = mysql_query("SELECT * FROM meteo");
$fetch = mysql_fetch_array($query);
// inserisco i valori
if (mysql_query("INSERT INTO meteo(id,tempo,temperatura,umidita,luminosita,pioggia,uv,pressione,altitudine,data) VALUES('$id','$tempo','$temperatura','$umidita','$luminosita','$pioggia','$uv','$pressione','$altitudine','$data') ")or die(mysql_error()))
{ // se tutto è andato a buon fine... 
echo "OK";
echo date ("d m Y H:i:s");
echo "   tempo:  ";
echo $tempo;
// if ($tempo>=3600)
//{
$query = mysql_query("TRUNCATE TABLE meteo");
$fetch = mysql_fetch_array($query);
//}
} 
else
{
echo "ERROR";
}
?>

Buona sera e benvenuto sul forum,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda:
- serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- pinout delle varie schede by xxxPighi: Pinout
- link generali utili: Link Utili

... dopo di che ... questo NON è un forum di PHP, questo è il forum di Arduino.cc dove si fornisce aiuto agli utenti su problematiche che coinvolgono i collegamenti, l'uso e la programmazione di Arduino.

Probabilmente otterresti risposte molto più circostanziate rivolgendoti ad un forum specializzato per PHP ... ::slight_smile:

Guglielmo

Concordo con Guglielmo, il problema sembra essere lato PHP.
Comunque sia, anche se non programma in PHP, per cercare di darti qualche indizio direi che mi sembra evidente che lo script non riceve il parametro "id" che è quindi stringa nulla, per cui il DB ti rifiuta la insert.

Quindi o Arduino non lo manda più (e quindi devi vedere perché, nello sketch) o non lo ha mai mandato. Ad esempio se l'ID è semplicemente una sequence, magari prima dell'update nel DB era presente a livello di taeblla l'impostazione per farla generare da lui (ID INT NOT NULL AUTO_INCREMENT) o avevi impostato un valore di default che lo faceva, ed ora dopo l'update non c'è più.

Ovviamente qui facci solo sapere se hai risolto, se non riguarda Arduino.
Spero di esserti stato utile. Ciao!