Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    [MySQL] mysql_connect ()

    Ciao a tutti, ho appena iniziato a studiare php con apache, php e mysql installati in locale, che, dopo mille problemi, finalmente dovrebbero lavorare correttamente. Sono arrivato all'interazione tra php e mysql tramite la funzione mysql_connect () e non riesco più a procedere - ecco il codice che uso (ne ho provati anche altri):

    Codice PHP:

        <?php
        
        
    echo "prima di mysql_connect stampa.";
        
        
    mysql_connect ("localhost""root""secret") or die ("non connette");
        
        echo 
    "dopo mysql_connect non stampa.";
        
        
    ?>
    Non ho la più pallida idea di quale sia il problema - probabilmente sarà qualche difetto nella configurazione o nell'installazione di mysql, ma dovrei aver fatto tutto giusto (ho ripetuto le installazioni molte volte). Attendo suggerimenti, risoluzioni, miracoli Ciao

  2. #2
    secret è la tua password corretta?

    ti stampa qualcosa o proprio niente?

  3. #3
    Stampa solo il primo echo, e si, secret è la mia password corretta

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Dopo aver creato la connessione devi selezionare, con mysql_select_db(nome_db), il database che desideri utilizzare.

    Ti converrebbe però usare una funzione che si occupi della connessione e della selezione del database per evitare di dover scrivere ogni vola le stesse cose. Ti tornerà utile senz'altro visto che per interagire con MySQL è sempre necessario connettersi e selezionare un database.

    Questa è una semplice funzione, da utilizzare quando occorre, che crea una connessione e contemporaneamente ti permette di selezionare il database scelto. Il nome del database da utilizzare dev'essere indicato come argomento della funzione nel momento in cui viene invocata. Ad esempio, $DBLink = connectDB('nome_database'); in questo modo la variabile $DBLink conterrà un riferimento (connessione/selezione) al tuo database.

    Codice PHP:
    $cfg['DBhost'] = 'localhost';
    $cfg['DBuser'] = 'root';
    $cfg['DBpass'] = '';

    function 
    connectDB($DBname)
    {
      global 
    $cfg;
      
    $DBlink = @mysql_connect($cfg['DBhost'], $cfg['DBuser'], $cfg['DBpass']) or die(mysql_error());
      return !
    mysql_select_db($DBname) ? die(mysql_error()) : $DBlink;

    Per completare l'opera potresti includere il codice in in file a parte, diciamo il classico config.inc.php, ad esempio. Quindi nelle pagine in cui dovrai utilizzare i dati contenuti nel tuo database non dovrai fare altro che includere il file di configurazione, include 'config.inc.php'; e invocare la funzione, come ti ho mostrato con l'esempio della variabile $DBLink.

    I dati necessari per la connessione al database li puoi indicare nelle variabili $cfg[], rispettivamente il nome del dominio dove risiede il database (DBHost), il nome utente (DBuser) e la password (DBpass).

  5. #5
    Mi sono dimenticato di specificare parte del problema: se inserisco i dati sbagliati non stampa nessun errore, ciò significa che nonconsidera nemmeno la connessione a mySQL. Conosco queste procedure, ma, dato che le ho già sperimentate e non hanno funzionado ho deciso testare per gradi le varie funzioni, ed effettivamente anche solo mysql_connect () preso a parte non funziona, quindi il problema è alla radice. Scusate se sono stato poco chiaro

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Per prima cosa aggiungi SEMPRE la segnalazione d'errore mysql_error() quando esegui dei comandi su MySQL. Poi, per la tua questione, controlla se nel tuo php.ini è attiva la visualizzazione degli errori. Dovresti avere prima error_reporting = E_ALL e subito dopo display_errors = On

  7. #7
    Ho fatto, ma dove li dovrebbe visualizzare gli errori? In ogni caso ho aggiunto anche mysql_error() nel caso non si connettesse, ma come dicevo, non stampa nulla dopo mysql_connect()


    Codice PHP:
        <?php
        
        
    echo "prima di mysql_connect stampa.";
        
        
    mysql_connect ("localhost""root""secret") or die (mysql_error());
        
        echo 
    "dopo mysql_connect non stampa.";
        
        
    ?>

  8. #8
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Ma cosa dovrebbe stampare dopo la connessione? Hai dell'altro codice?

    comunque, non credo di essere poco chiaro nella spiegazione riguardo alla connessione/SELEZIONE del database nel post precedente. Se non selezioni prima un database ed esegui delle query cosa dovrebbe stampare?

  9. #9
    Beh, a parte che inserendo i dati sbagliati dovrebbe stampare un messaggio di errore, ma poi ho piazzato un echo prima e dopo mysql_connect(), e stampa solo il primo. Questo accade anche se tolgo "die (mysql_error());"

  10. #10
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Boh!? riprova seguendo il primo esempio che trovi nella sezione dedicata del manuale. Potrebbe essere un'errore di installazione, prova a leggere i capitoli relativi all'installazione di MySQL di questa guida, magari è un problema di configurazione...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.