Mysql
 sql >> Database >  >> RDS >> Mysql

interrogare il database mysql dall'interno di una classe

Passalo al metodo stesso

Devi passare l'oggetto database al metodo, perché non sono nello stesso ambito:

function runQuery($mysqli)

e chiamalo come

$a = new theClass;
$a->runQuery($mysqli);

Passalo al costruttore

Se la tua classe effettua molte chiamate al database, puoi semplicemente passarla nel costruttore e salvarla come variabile privata per un uso successivo:

class theClass
{
  private $mysqli;

  function __construct($mysqli) {
    $this->mysqli = $mysqli;
  }

  function runQuery()
  {
    $query = "SELECT col_1 FROM db.table";
    $stmt = $this->mysqli->prepare($query);
    stmt->execute();
    $stmt->bind_result($r);

    while($stmt->fetch())
    {
      echo $r . "<br>";
    }
  }
};

e chiamalo come

$a = new theClass($mysqli);
$a->runQuery();

Entrambi i metodi chiariscono che la dipendenza della tua classe è un oggetto mysqli, che è utile per la futura manutenzione e leggibilità.