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.