Ciao a tutti. Sto riscontrando un problema in un file php che contiene 15 funzioni, questo file (backend) viene richiamato da un altro file (frontend) tramite Ajax ed esegue tutte le 15 funzioni che fanno delle query dal db con relativi calcoli ed altro e restituiscono i risultati. Nell'insieme (frontend e backend) funziona tutto e bene per quello che deve fare, ma nello scrivere ho inserito in ogni funzione come prime istruzioni i parametri di connessioni al db e la connessione stessa. Ora vorrei eliminare ogni volta la connessione al db e farla una sola volta all'inizio del codice, così da evitare di ripeterlo per ogni funzione, quindi l'ho inserito all'inizio del codice, fuori da tutte le funzioni. Per farvi capire, un risultato simile a questo:
<?php
include("conn_db.php"); // $conn connessione al db
funzione 1{
$conn->query($sql);
}
funzione 2{
$conn->query($sql2);
}
ecc...
?>
Il codice di conn_db.php è il seguente:
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error);
}
Ovviamente le variabili servername user e simili sono inizializzate. L'errore restituito è il seguente:
Notice: Undefined variable: conn in C:\xampp\htdocs\backend.php on line 101
Fatal error: Uncaught Error: Call to a member function query() on null in C:\xampp\htdocs\backend.php:101
La variabile conn dell'errore è la stessa del file conn_db.php. Ho anche provato ad inserire il codice del file nel backend senza successo. La cosa che non capisco, è che la funzione 1 si connette al db, ma la seconda no. Infatti la riga 101 appartiene alla funzione 2 ed è
$result2 = $conn->query($sql2);
uguale alla 1° funzione tranne per il nome delle variabili. Credo sia un discorso di variabili globali, ma facendo ricerche e varie prove non sono venuto a capo. Spero possiate aiutarmi, ogni suggerimento è utile.