sql >> Database >  >> RDS >> Mysql

query mysql-database vanuit een klasse

Geef het door aan de methode zelf

Je moet het database-object doorgeven aan de methode, omdat ze niet in hetzelfde bereik liggen:

function runQuery($mysqli)

en noem het als

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

Geef het door aan de constructor

Als je klas veel database-aanroepen doet, kun je het gewoon doorgeven aan de constructor en het opslaan als een privévariabele voor later gebruik:

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

en noem het als

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

Beide methoden maken duidelijk dat de afhankelijkheid van je klasse een mysqli-object is, wat goed is voor toekomstig onderhoud en leesbaarheid.



  1. Wat is een tijdreeksdatabase?

  2. PHP:update meerdere MySQL-velden in één query

  3. MySql krijgt de som van een kolom in elke rij van een nieuwe kolom

  4. Een tijdstempel opmaken