sql >> Base de Datos >  >> RDS >> Mysql

consultar la base de datos mysql desde dentro de una clase

Pasarlo al propio método

Debe pasar el objeto de la base de datos al método, porque no están en el mismo ámbito:

function runQuery($mysqli)

y llámalo como

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

Pasarlo al constructor

Si su clase hace muchas llamadas a la base de datos, simplemente puede pasarlo en el constructor y guardarlo como una variable privada para su 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>";
    }
  }
};

y llámalo como

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

Ambos métodos dejan en claro que la dependencia de su clase es un objeto mysqli, lo cual es bueno para el futuro mantenimiento y legibilidad.