Problema con require once

  • Creatore Discussione Creatore Discussione PaoloG
  • Data di inizio Data di inizio

PaoloG

Utente Attivo
23 Ago 2020
22
0
1
Salve, ho creato un file di connessione al db mysql (uso xampp in locale).
Funziona tutto correttamente fino a quando non fermo la connessione al db.
Con mysql in stop mi genera il seguente messaggio:

Impossibile connettersi al database: SQLSTATE[HY000] [2002] Impossibile stabilire la connessione. Rifiuto persistente del computer di destinazione.

Tutto regolare dato che nel file di connessione c'e catch (PDOException $e) {exit("Impossibile connettersi al database: " . $e->getMessage());}, ma il problema e che dopo il messaggio non mi carica il resto della pagina compreso quello che si trova al di fuori dei tag php.

Ci sarebbe un modo continuare a caricare il resto della pagina anche con la connessione fallita?

Grazie e scusate se potrebbe essere una domanda banale ma ho iniziato da poco.
 
Grazie per la risposta, l'ho avevo già provato, anche include, ma il risultato non cambia, credo che il problema non sia i file, perché esiste il problema è la connessione

<div>
<div>tutto ok</div>
<div id='mydati'>
<ul>
<?php
include_once('connessione.php');
---qui si blocca tutto con xampp mysql=stop---
foreach (recupero i dati)
{
echo 'visualizzo i dati';
}
?>

</ul>
</div>
<div>non visualizzato</div>
<div>non visualizzato</div>
</div>
</body>
</html>

Con xampp MySQL avviato non mi da nessun problema.
 
non avevo notato l'exit() nel catch , metti un echo, anche se ho dei dubbi su come stai gestendo la cosa.
 
Potresti aggiungere una variabile $statusDB nel file connessione.php per poi utilizzarlo come verifica della connessione andata a buon fine dopo che fai l'include nel file html.

PHP:
try {
    $conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $statusDB = true;
} catch (PDOException $e) {
    $statusDB = false;
    echo "Connessione al database fallita: " . $e->getMessage();
}

PHP:
<?php
    include_once('connessione.php');
    if ($statusDB == true) {
        // foreach (recupero i dati) {
            echo 'visualizzo i dati';
        // }
    }
    ?>
 
  • Like
Reactions: PaoloG
Potresti aggiungere una variabile $statusDB nel file connessione.php per poi utilizzarlo come verifica della connessione andata a buon fine dopo che fai l'include nel file html.

PHP:
try {
    $conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $statusDB = true;
} catch (PDOException $e) {
    $statusDB = false;
    echo "Connessione al database fallita: " . $e->getMessage();
}

PHP:
<?php
    include_once('connessione.php');
    if ($statusDB == true) {
        // foreach (recupero i dati) {
            echo 'visualizzo i dati';
        // }
    }
    ?>

Grazie, così funziona, ho fatto così

<?php
include_once('connessione.php');
if ($statusDB == true){
foreach (recupero i dati)
{
echo 'visualizzo i dati';
}
}else{
echo 'Nessun dato disponibile...';
}
?>

Praticamente è l'exit che mi esclude tutto il codice restante.
 

Discussioni simili