Ho creato una classe per connettersi al database e prelevare i vari messaggi. Questo il codice
Codice PHP:
require('config.inc.php'); //contiene la dichiarazione delle variabili dedite alla connessione al DB
class gestioneMessaggi {
private $db;
function connettiAlDatabase()
{
global $db_name, $db_host, $db_user, $db_password; //queste variabili sono dichiarate all'interno di config.inc.php
try {
$this->$db = new PDO('mysql:host='.$db_host.';dbname='.$db_name, $db_user, $db_password);
$this->$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
echo('ok'); //<----ATTENZIONE A QUESTO!
}
//..altro codice
}
Nel file index.php ho scritto
Codice PHP:
<?php
require('gestioneMessaggi.php'); //incorporo la classe sopra riportata
$gestioneMessaggi = new gestioneMessaggi();
$gestioneMessaggi -> connettiAlDatabase();
?>
Il problema è che l'"ok" generato dall'echo non viene stampato a video..E non so nemmeno per quale motivo in quanto non mi vengono segnalati gli errori (e a proposito, come posso ovviare al problema?).
Comunque facendo prove su prove ho capito che il problema risiede nel modo in cui tento di accedere alla variabile privata $db. Infatti se invece di scrivere
Codice PHP:
$this->$db = new PDO(etc...)
scrivo
Codice PHP:
$db = new PDO(etc...)
l'ok mi viene correttamente stampato..
Preciso infatti che è la prima volta che uso un sistema OO in PHP, quindi magari ho fatto un errore grossolano, ma dove?