Cosa sbaglio [...] Ho provato a inserire tutte le possibili varianti e comandi che da 2 gg ho reperito nei diversi forum ma risultato null
Non serve provare varianti e comandi a caso: ne basta uno, quello indicato nella guida alla voce Database MySQL - Parametri di connessione e nella documentazione di PHP.
Inoltre non stai controllando la riuscita delle query. Controllando i valori restituiti sarebbe PHP stesso a dirti cosa non va.
Il nome della base di dati che cerchi di usare non corrisponde a quello che ti è assegnato.
Concretamente dovresti rivedere il codice in questo modo:
Codice PHP:
// Legge i parametri
$Certificato = $_POST['Certificato'];
$Assicurato = $_POST['Assicurato'];
$Comune = $_POST['Comune'];
$Prodotto = $_POST['Prodotto'];
$DataPreCopertura=$_POST['DataPreCopertura'];
// Si connette alla base di dati
$mysqli = new mysqli("", "", "", "my_calamitanaturali");
if ($mysqli->connect_errno) {
echo "Impossibile connettersi a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
// Inserisce i dati
$query = "INSERT INTO preventive (Certificato, Assicurato, Comune, Prodotto, DataPreCopertura) VALUES ('$Certificato', '$Assicurato', '$Comune', '$Prodotto', '$DataPreCopertura')";
$result = $mysqli->query($query);
if (!$result) {
echo "Inserimento fallito: (" . $mysqli->errno . ") " . $mysqli->error;
}
perchè in localhost di xampp tutto funzionava?
La vera domanda è: perché ti aspetti che un codice funzioni, se è stato scritto e testato in un sistema locale con una configurazione diversa rispetto a quella su cui lo intendi eseguire?
Infine, il codice scritto così è vulnerabile a SQL Injection. Controlla i valori ricevuti prima di usarli per costruire il testo della query oppure usa i prepared statement.