sql >> Databáze >  >> RDS >> Mysql

dotaz na databázi mysql zevnitř třídy

Předejte jej samotné metodě

Databázový objekt musíte předat metodě, protože nejsou ve stejném rozsahu:

function runQuery($mysqli)

a nazvěte to jako

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

Předejte jej konstruktoru

Pokud vaše třída provádí mnoho databázových volání, můžete ji jednoduše předat do konstruktoru a uložit ji jako soukromou proměnnou pro pozdější použití:

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

a nazvěte to jako

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

Obě metody objasňují, že závislost vaší třídy je objekt mysqli, což je dobré pro budoucí údržbu a čitelnost.



  1. náhodná čísla v java

  2. Datum a čas vs datum a čas Mysql

  3. Jak vybrat stránkování podle počtu N záznamů z databáze MySQL?

  4. Opětovné připojení k serveru MySQL zmizelo