- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema include
-
problema include
Ciao a tutti,
ho un file "index.php" e un "dati.config.php" (dove ho i parametri per connettersi al database) e quando lo richiamo ```
include_once(dati.config.php);
$db=new db($host,$user,$psw,$db_name);include_once(dati.config.php);
class classe{
public function esegui(){
$db=new db($host,$user,$psw,$db_name);
}
}
-
Ciao; istanzia la classe e poi passi i parametri che ti occorrono al metodo tipo:
[php]$classeistanziata->esegui($host,$user,$pass);[/php]
in modo da poter usare file di config.
-
Ho provato a fare:
$db=new db(); $db->connect($host,$username,$password,$db_name); ```ma non funziona lo stesso!
-
La tua funzione (o metodo, visto che siamo nella OOP) si chiama esegui(), non capisco perchè ti sei riferita ad essa usando connect().
Dovrai in ogni modo chiamare il tuo metodo con lo stesso nome della classe in modo da renderlo costruttore.[PHP]
class Database {
function Database($host,$username,$password,$db_name) {
// Tutto ciò che ti serve per connetterti al db
}
}
[/PHP]per connetterti dovrai istanziarla, ovvero
[PHP]
// Includi la classe
$connessione = new Database;
$connessione->Database("host", "username", "password", "db");
[/PHP]
-
Si si ho invertito i nomi ma nel codice avevo usato quelli giusti!
Comunque è un problema di scope ho scoperto, probabilente perchè usando "include_once(dati.config.php)" più volte (qui sta l'errore...) lo includeva solo una volta considerandolo in ambito locale... Ho risolto usando $GLOBALS:$db=new db($GLOBALS['host'],$GLOBALS['user'],$GLOBALS['psw'],$GLOBALS['db_name']);