Visualizzazione risultati 1 fino 2 di 2

Discussione: Non riesco ad alimentare il DB da pagina php

  1. #1
    Guest

    Predefinito Non riesco ad alimentare il DB da pagina php

    Salve.
    Ho realizzato DB e pagine in ambiente Xampp e tutto funzionava: alimentavo e interrogavo il mio DB Mysql.
    Ora che sto portando il tutto su altervista, non riesco ad alimentare il DB tramite file php.
    ----------------------
    file php
    <!DOCTYPE html>
    <html>
    <head>
    <title>Collegarsi a un DB MySQL</title>
    </head>
    <?php

    $Archivio = new mysqli("localhost", "root", "",);
    $DB=$Archivio->query("USE rilievidanni");

    $Certificato=$_POST['Certificato']; $Assicurato=$_POST['Assicurato'];$Comune=$_POST['Comune']; $Prodotto=$_POST['Prodotto'];
    $DataPreCopertura=$_POST['DataPreCopertura'];;

    $Record= $Archivio->query("INSERT INTO preventive (Certificato, Assicurato, Comune, Prodotto, DataPreCopertura) VALUES ('$Certificato', '$Assicurato', '$Comune', '$Prodotto', '$DataPreCopertura')");


    $Esci=$Archivio-> query("CLOSE $DB")

    ?>

    </html>
    ------------------------------
    Cosa sbaglio e perchè in localhost di xampp tutto funzionava? Ho provato a inserire tutte le possibili varianti e comandi che da 2 gg ho reperito nei diversi forum ma risultato null
    Grazie.

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    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.

    I suggerimenti che do più spesso:


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •