Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

consultar banco de dados mysql de dentro de uma classe

Passe para o próprio método


Você tem que passar o objeto do banco de dados para o método, pois eles não estão no mesmo escopo:
function runQuery($mysqli)

e chamá-lo como
$a = new theClass;
$a->runQuery($mysqli);

Passe para o construtor


Se sua classe faz muitas chamadas de banco de dados, você pode simplesmente passá-la no construtor e salvá-la como uma variável privada para uso posterior:
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 chamá-lo como
$a = new theClass($mysqli);
$a->runQuery();

Ambos os métodos deixam claro que a dependência de sua classe é um objeto mysqli, o que é bom para manutenções futuras e legibilidade.