sql >> データベース >  >> RDS >> Mysql

クラス内からmysqlデータベースにクエリを実行します

    メソッド自体に渡します

    同じスコープにないため、データベースオブジェクトをメソッドに渡す必要があります。

    function runQuery($mysqli)
    

    のように呼んでください
    $a = new theClass;
    $a->runQuery($mysqli);
    

    コンストラクターに渡します

    クラスが多くのデータベース呼び出しを行う場合は、それをコンストラクターに渡して、後で使用するためにプライベート変数として保存するだけです。

    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 = new theClass($mysqli);
    $a->runQuery();
    

    どちらの方法でも、クラスの依存関係がmysqliオブジェクトであることが明確になります。これは、将来の保守と可読性に適しています。



    1. ASP.NET API:このDbContext用にデータベースプロバイダーが構成されていません

    2. MS SQL ON DELETE CASCADE同じテーブルを指す複数の外部キー?

    3. Postgresql generate_seriesofmonths

    4. SQL Server(C#クライアント)に大量のデータを一括挿入するための最速の方法は何ですか