sql >> Database teknologi >  >> RDS >> Mysql

forespørg på mysql-database inde fra en klasse

Giv den videre til selve metoden

Du skal videregive databaseobjektet til metoden, fordi de ikke er i samme omfang:

function runQuery($mysqli)

og kald det som

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

Giv det videre til konstruktøren

Hvis din klasse foretager mange databasekald, kan du blot sende det i konstruktøren og gemme det som en privat variabel til senere brug:

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

og kald det som

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

Begge metoder gør det klart, at din klasses afhængighed er et mysqli-objekt, hvilket er godt for fremtidig vedligeholdelse og læsbarhed.



  1. Tilføj 2 timer til nuværende tid i MySQL?

  2. Sådan genererer du DDL-scripts (opret) fra SQL Server Management Studio (SSMS) - SQL Server / TSQL Tutorial Del 17

  3. Hvordan gemmer jeg PHP-sessionsdata til en database i stedet for i filsystemet?

  4. forskel mellem tabellerne