<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 6-1 適配器模式 ### 第一步:定義一個接口 *D:\wamp\www\demo\oop\framework\Think\IDatabase.php* ~~~ <?php namespace Think; // 定義一個數據庫的適配器接口類 interface IDatabase { function connect($host, $user, $passwd, $dbname); function query($sql); function close(); } ~~~ ### 第二步:創建3個數據庫的操作類 接下來,我們分別實現上面的操作類,繼承同一個適配器接口,使用一致的操作數據庫方法。 **分別實現3種數據庫的操作** *D:\wamp\www\demo\oop\framework\Think\Database\MySQL.php* ~~~ <?php namespace Think\Database; use Think\IDatabase; class MySQL implements IDatabase { protected $conn; function connect($host, $user, $passwd, $dbname) { $conn = mysql_connect($host, $user, $passwd); mysql_select_db($dbname, $conn); $this->conn = $conn; } function query($sql) { $ret = mysql_query($sql, $this->conn); return $ret; } function close() { mysql_close($this->conn); } } ~~~ *D:\wamp\www\demo\oop\framework\Think\Database\MySQLi.php* ~~~ <?php namespace Think\Database; use Think\IDatabase; class MySQLi implements IDatabase { protected $conn; function connect($host, $user, $passwd, $dbname) { $conn = mysqli_connect($host, $user, $passwd, $dbname); $this->conn = $conn; } function query($sql) { $res = mysqli_query($this->conn, $sql); return $res; } function close() { mysqli_close($this->conn); } } ~~~ *D:\wamp\www\demo\oop\framework\Think\Database\PDO.php* ~~~ <?php namespace Think\Database; use Think\IDatabase; class PDO implements IDatabase { function connect($host, $user, $passwd, $dbname) { $conn = new \PDO("mysql:host={$host}; dbname={$dbname}", $user, $passwd); $this->conn = $conn; } function query($sql) { return $this->conn->query($sql); } function close() { unset($this->conn); } } ~~~ ### 第三步:入口文件中,使用適配器模式實現數據庫的操作 *D:\wamp\www\demo\oop\framework\index.php* ~~~ <?php // 入口文件 define('BASEDIR', __DIR__); include BASEDIR . '/Think/Loder.php'; spl_autoload_register('\\Think\\Loder::autoload'); $db = new Think\Database\MySQLi(); $db->connect('localhost', 'root', 'root', 'demo'); $ret = $db->query('show databases'); $db->close(); var_dump($ret); ~~~ 以上所述,我們使用適配器模式定義了一個接口,然后實現了3種數據庫的操作模式分別繼承這個接口,實現特定的3種方法。 最終,會大大的方便我們隨時切換數據庫的類型。 比如: ~~~ $db = new Think\Database\MySQL(); $db = new Think\Database\MySQLi(); $db = new Think\Database\PDO(); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看