Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abfrage der MySQL-Datenbank innerhalb einer Klasse

Übergeben Sie es an die Methode selbst

Sie müssen das Datenbankobjekt an die Methode übergeben, da sie sich nicht im selben Gültigkeitsbereich befinden:

function runQuery($mysqli)

und nenne es wie

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

Übergeben Sie es an den Konstruktor

Wenn Ihre Klasse viele Datenbankaufrufe durchführt, können Sie sie einfach im Konstruktor übergeben und für die spätere Verwendung als private Variable speichern:

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>";
    }
  }
};

und nenne es wie

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

Beide Methoden machen deutlich, dass die Abhängigkeit Ihrer Klasse ein mysqli-Objekt ist, was gut für die zukünftige Wartung und Lesbarkeit ist.