Visualizzazione risultati 1 fino 9 di 9

Discussione: Connessione MySQL + SQL statement..?!

  1. #1
    Guest

    Predefinito Connessione MySQL + SQL statement..?!

    Buongiorno, vorrei avere lo snippet per la connessione al database e vorrei anche sapere per piacere dove poter inserire gli SQL statement, perchè sto seguendo dei tutorial simpaticissimi di SQL, ma non ho ancora capito come usarli questi "comandi".

    In fede,
    Muà.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

  3. #3
    Guest

    Predefinito

    Codice PHP:
    <?php
    $servername
    = "localhost";
    $username = "spippetta";
    $password = "";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password);

    // Check connection
    if (!$conn) {
    die(
    "Connection failed: " . mysqli_connect_error());
    }
    echo
    "Connected successfully";

    //Chiudere connessione
    //mysqli_close($conn);
    ?>
    e continua qui col proceduale.
    Ultima modifica di spippetta : 07-03-2015 alle ore 14.48.13

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Prova specificando nel quarto parametro della mysqli_connect() il nome del database, che nel tuo caso è "my_spippetta".

    In ogni caso, quale è l'errore? Cosa produce quel codice? Hai attivato il database?

    Ciao!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    [...]
    Tutto a posto grazie, ho risolto grazie alle tue utili risposte.

    Eseguendo su "SELECT * FROM `MyGuests`" un var_dump, viene riportato quanto segue:
    object(mysqli_result)#2 (5) {
    ["current_field"]=>
    int(0)
    ["field_count"]=>
    int(5)
    ["lengths"]=>
    NULL
    ["num_rows"]=>
    int(3)
    ["type"]=>
    int(0)
    }
    È una classe, ma io vorrei ottenere un'array. È possibile?

    Ho provato questo codice:
    Codice PHP:
    <?php
    $servername
    = "localhost";
    $username = "spippetta";
    $password = "";

    // Create connection
    $link = mysqli_connect($servername, $username, $password,'my_spippetta');

    $sql_query='SELECT * FROM `MyGuests`';


    $q_res = mysqli_query($link, $sql_query);
    if(
    $q_res){
    var_dump mysqli_fetch_array($q_res); //è qui l'errore
    }else{
    die(
    mysqli_error($link));
    }
    ma risulta quest'errore:
    Parse error: syntax error, unexpected 'mysqli_fetch_array' (T_STRING) in /membri/spippetta/db/index.php on line 14

    cosa devo correggere? come? perchè?

    Grazie mille.
    Ultima modifica di spippetta : 07-03-2015 alle ore 20.19.02

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Praticamente ottieni un oggetto mysqli_result. Come vedi (dal link) hai a disposizione parecchie proprietà e metodi da utilizzare. In particolare con il metodo fetch_assoc() puoi leggere tutte le righe del database come mostrato negli esempi in quella pagina.

    Nel tuo codice, non hai messo le parentesi alla var_dump().

    Ciao!
    Ultima modifica di alemoppo : 07-03-2015 alle ore 20.31.58

  7. #7
    Guest

    Predefinito

    • Come seleziono l'entry "id" col valore più alto in un array? google non trova nulla
    • Come mi proteggo da SQL Injection? google non trova risultati comprensibili da uno che ha cominciato ieri con MySQL


    Ovviamente tutto ciò è dato dalla mia ignoranza nel campo, ma spero possiate comunque aiutarmi.
    Grazie
    Ultima modifica di spippetta : 08-03-2015 alle ore 13.59.41

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Citazione Originalmente inviato da spippetta Visualizza messaggio
    Come seleziono l'entry "id" col valore più alto in un array? google non trova nulla
    Stai parlando di mysql oppure un semplice array?
    Nel primo caso, devi fare una SELECT, ordinare per "id" (con la ORDER BY, nel tuo caso anche con DESC) e limitare i dati a 1 (con LIMIT 1). Quindi l'unico elemento che avrai sarà quello voluto.
    Nel secondo caso, è sufficiente utilizzare end().

    Citazione Originalmente inviato da spippetta Visualizza messaggio
    Come mi proteggo da SQL Injection? google non trova risultati comprensibili da uno che ha cominciato ieri con MySQL
    Semplicemente, qualsiasi dato proveniente dall'utente (quindi $_POST, $_GET, $_COOKIE, ...) va sempre fatto passare per la real_escape_string().
    Occhio anche agli attacchi XSS se stampi del testo proveniente dall'utente. Normalmente si possono risolvere ad esempio con la htmlentities().

    Ciao!
    Ultima modifica di alemoppo : 08-03-2015 alle ore 14.13.11

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    [...]
    Grazie mille, poi provo, appena riesco, in quanto sto ancora in alto mare col progetto.
    In secondo luogo, mi domando perchè se è così facile eludere SQL Injection, perchè alcuni siti riportano che il 70% degli script sono vulnerabili?

    Ho risolto così per la injection:

    Codice PHP:
    foreach($_POST as $key => $value) {
    $_GET[$key]=inj($value);
    }
    di cui inj() è la funzione che sanitizza le variabili
    Codice PHP:
    function inj($a){
    return
    trim(htmlspecialchars(real_escape_string($a),ENT_QUOTES,UTF-8));
    }
    Ultima modifica di spippetta : 08-03-2015 alle ore 16.05.41

Regole di scrittura

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