Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Connessione a database

  1. #1

    Connessione a database

    Salve, è da un pò che non tocco PHP, l'ultima versione è stata PHP 5; con l'uscita di PHP 7, non riesco più a effettuare una connessione.

    $connessione = mysql_connect("localhost","root");
    if(!$connessione){
    die('Non riesco a connettermi: '. mysql_error());
    }
    $database
    = mysql_select_db("EasyStage",$connessione);
    $query
    ="select * from Studenti where Email = $ID and Password = $pw";
    $result
    = mysql_query($query);

    Come faccio a tradurre questo in PHP 7? Grazie a tutti.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Devi usare mysqli_ perché mysql_ non è più supportato ed era già deprecato in php 5.5

    Per informazioni sull'uso di mysqli_: link, ma cambia poco, i nomi delle funzioni sono praticamente gli stessi con l'aggiunta della i e fa solo attenzione ai parametri da passare, dovrai aggiuungere la variabile $connessione (nel tuo caso), che usando mysql_ era sottointesa, ora va esplicitata perché si possono usare più connessioni contemporaneamente.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Devi usare mysqli_ perché mysql_ non è più supportato ed era già deprecato in php 5.5

    Per informazioni sull'uso di mysqli_: link, ma cambia poco, i nomi delle funzioni sono praticamente gli stessi con l'aggiunta della i e fa solo attenzione ai parametri da passare, dovrai aggiuungere la variabile $connessione (nel tuo caso), che usando mysql_ era sottointesa, ora va esplicitata perché si possono usare più connessioni contemporaneamente.
    Ho scritto così ma mi dà l'errore che ho screennato e allegato. Come posso fare?
    codice:
    $ID = $_POST['ID'];	$pw = $_POST['pw'];
    	$connessione = mysqli_connect("localhost","root");
    	if (!$connessione) {
    		die ('Non riesco a connettermi: ' . mysqli_error());
    	}
    	$database = mysqli_select_db("easystage",$connessione);
    	$query = "select * from Studenti where Email = '$ID' and Password = '$pw'";
    	$result = mysqli_query($query,$connessione);
    Immagini allegate Immagini allegate

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    E meno male che te l'ho anche scritto di stare attento ai parametri da passare.
    Hai letto la documentazione che ti ho linkato? I parametri hanno un ordine, non li puoi mettere come ti pare.

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    E meno male che te l'ho anche scritto di stare attento ai parametri da passare.
    Hai letto la documentazione che ti ho linkato? I parametri hanno un ordine, non li puoi mettere come ti pare.
    Sisi avevo risolto subito dopo grazie mille. Scusa, adesso ho un altro problema: quando voglio vedere se quei determinati dati esistono nel database, anche se inserisco dati inesistenti il programma continua come se fossero esistenti. Come devo fare?
    codice:
    	$ID = $_POST['ID'];	$pw = $_POST['pw'];
    	$connessione = mysqli_connect("localhost","root");
    	if (!$connessione) {
    		die ('Non riesco a connettermi: ' . mysqli_error());
    	}
    	$database = mysqli_select_db($connessione,"easystage");
    	$query = "select * from Studenti where Email = '$ID' and Password = '$pw'";
    	$result = mysqli_query($connessione,$query);
    	if(isset($result)) {
    		echo "<script type='text/javascript'>
    			location.href = 'Home.html';
                </script>";
    	} else {
    		echo "<script type='text/javascript'>
                alert('L utente non esiste') 
    			location.href = 'Login.html';
                </script>";
    	}

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    $result non ti dice se sono stati trovati dati oppure no, ti dice se la query è stata eseguita correttamente o se ci sono stati errori e il non trovare dati non è un errore.

    Poi il controllo lo fai con isset() che ti dice solo se una variabile esiste e $result esiste per forza, l'hai dichiarata una riga prima, isset() non controlla il contenuto.

    Per sapere se sono stati trovati dei record devi usare num_rows.

    Leggi la documentazione che ti ho linkato prima, c'è scritto tutto e i nomi delle funzioni sono spesso autoesplicativi, basta leggere come si chiamano per capire più o meno che fanno, poi nella loro pagina c'è scritto esplicitamente.

    Non prendere queste mie risposte come un "arrangiati un po'", ma vedile come un'indicazione per imparare a risolvere da solo i tuoi problemi, il che ti fa risparmiare tantissimo tempo, per esempio adesso per sapere che devi usare num_rows sono passate 2 ore, se fossi in grado di leggere la documentazione avresti trovato la soluzione nel giro di qualche minuto.
    Ultima modifica di Alhazred; 21-11-2017 a 19:43

  7. #7
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    $result non ti dice se sono stati trovati dati oppure no, ti dice se la query è stata eseguita correttamente o se ci sono stati errori e il non trovare dati non è un errore.

    Poi il controllo lo fai con isset() che ti dice solo se una variabile esiste e $result esiste per forza, l'hai dichiarata una riga prima, isset() non controlla il contenuto.

    Per sapere se sono stati trovati dei record devi usare num_rows.

    Leggi la documentazione che ti ho linkato prima, c'è scritto tutto e i nomi delle funzioni sono spesso autoesplicativi, basta leggere come si chiamano per capire più o meno che fanno, poi nella loro pagina c'è scritto esplicitamente.

    Non prendere queste mie risposte come un "arrangiati un po'", ma vedile come un'indicazione per imparare a risolvere da solo i tuoi problemi, il che ti fa risparmiare tantissimo tempo, per esempio adesso per sapere che devi usare num_rows sono passate 2 ore, se fossi in grado di leggere la documentazione avresti trovato la soluzione nel giro di qualche minuto.
    Grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.