richiamaPippo.php
Codice PHP:
<?php

include_once("class/pippoClass.php");
include_once(
"class/pippoClass2.php");

$classe1 = new Classe1();
$classe2 = new Classe2();

$sql "SELECT * FROM admin WHERE username='gatefn'";
//$classe1->eseguiQuery($sql);

echo "
"
;

$classe2->foo("SELECT * FROM admin WHERE username='gatefn'");

?>
pippoClass.php
Codice PHP:

<?php

class Classe1 {
    
    protected 
$mysql;
    
    public function 
__construct(){
        
$this->mysql = new mysqli"localhost""root""""keybcorals" );
        
        if (
$this->mysql->connect_errno) {
            echo 
"Failed to connect to MySQL: (" $this->mysql->connect_errno ") " $this->mysql->connect_error;
    }
    }
    
    public function 
eseguiQuery($sql){
   
        
        if (
$result $this->mysql->query($sql))
            return 
$result;
        else
            return 
false;
    }
}

?>

pippoClass2.php
Codice PHP:

<?php

class Classe2 extends Classe1 {

    public function 
foo($sql){
        echo 
$sql;
        
$result $this->eseguiQuery($sql);
        
        if (
$result)
            echo 
"siii funziona anche nella classe 2";
        else
            echo 
"non funziona";
    }
    
}

?>
Ragazzi la query che passo come parametro al metodo foo è errata però mi stampa a video "siii funziona anche nella classe 2"
mentre se faccio una cosa del tipo:
Codice PHP:
$classe2->foo("queryscrittamale"); 
mi stampa a video "non funziona".

Come mai questo errore???

Inoltre è corretto avere un attributo della classe e poi ne costruttore fare:
codice:
$this->mysqli = new mysqli.... oppure era meglio usare semplicemente

$mysqli = new mysqli (...);
Questo però mi porterebbe ad istanziare un nuovo oggetto di mysqli ogni volta che mi serve in un metodo.