1

これまでに 1 か月間オブジェクト指向スタイルを作成してきましたが、SQL クエリを使用する正しいアプローチはどれなのか疑問に思っています。たとえば、クラスに関数 getPlayerData があります。したがって、どちらの方法が良いですか-1)クラス外でmysqlプロシージャを実行し、取得した配列をgetPlayerDataに渡します2)クラス内ですべてのプロシージャを実行します

2 番目のケースを提案する場合、mysqli インスタンスが開始されたグローバル $variable ですべての関数を開始する必要がありますか?

適切な用語を使用していない場合は申し訳ありませんが、いつでも修正できます。ありがとう!

4

1 に答える 1

1

各クラス関数にグローバル変数を与える代わりに、次のようなことを行うことができます。

class Test{

    protected $mysqli = null;

    function __construct($mysqli = null){
        $this->mysqli = $mysqli;
    }

    public function setMySqli($mysqli){
        $this->mysqli = $mysqli;
    }

    public function getSomething(){
        $result = $this->mysqli->query("SELECT something FROM table");
        //do something with result here
        return $result;
    }

}

次のようにオブジェクトを使用できるようにします。

$test = new Test($mysqli);
$result = $test->getSomething();

また

$test = new Test();
$test->setMySqli($mysqli);
$result = $test->getSomething();
于 2012-10-25T08:13:42.147 に答える