<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>

                ## 原生查詢 設置好數據庫連接信息后,我們就可以直接進行原生的SQL查詢操作了,包括`query`和`execute`兩個方法,分別用于查詢操作和寫操作,下面我們來實現數據表`think_data`的CURD操作。 ### 創建(create) ~~~ // 插入記錄 $result = Db::execute('insert into think_data (id, name ,status) values (5, "thinkphp",1)'); dump($result); ~~~ ### 更新(update) ~~~ // 更新記錄 $result = Db::execute('update think_data set name = "framework" where id = 5 '); dump($result); ~~~ ### 讀取(read) ~~~ // 查詢數據 $result = Db::query('select * from think_data where id = 5'); dump($result); ~~~ > query方法返回的結果是一個數據集(數組),如果沒有查詢到數據則返回空數組。 ### 刪除(delete) ~~~ // 刪除數據 $result = Db::execute('delete from think_data where id = 5 '); dump($result); ~~~ ### 其它操作 可以執行一些其他的數據庫操作,原則上,讀操作都使用`query`方法,寫操作使用`execute`方法即可,例如: ~~~ // 顯示數據庫列表 $result = Db::query('show tables from demo'); dump($result); // 清空數據表 $result = Db::execute('TRUNCATE table think_data'); dump($result); ~~~ > `query`方法用于查詢,默認情況下返回的是數據集(二維數組),`execute`方法的返回值是影響的記錄數。 ### 切換數據庫 在進行數據庫查詢的時候,支持切換數據庫進行查詢,例如: ~~~ $result = Db::connect([ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'thinkphp', // 數據庫用戶名 'username' => 'root', // 數據庫密碼 'password' => '123456', // 數據庫連接端口 'hostport' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => 'utf8', // 數據庫表前綴 'prefix' => 'think_', ])->query('select * from think_data'); dump($result); ~~~ 或者采用字符串方式定義(字符串方式無法定義數據表前綴和連接參數),如下: ~~~ $result = Db::connect('mysql://root:123456@127.0.0.1:3306/thinkphp#utf8')->query('select * from think_data where id = 1'); dump($result); ~~~ 為了簡化代碼,通常的做法是事先在配置文件中定義好多個數據庫的連接配置,例如,我們在應用配置文件(`application/config.php`)中添加配置如下: ~~~ // 數據庫配置1 'db1' => [ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'thinkphp', // 數據庫用戶名 'username' => 'root', // 數據庫密碼 'password' => '123456', // 數據庫連接端口 'hostport' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => 'utf8', // 數據庫表前綴 'prefix' => 'think_', ], // 數據庫配置2 'db2' => [ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'test', // 數據庫用戶名 'username' => 'root', // 數據庫密碼 'password' => '', // 數據庫連接端口 'hostport' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => 'utf8', // 數據庫表前綴 'prefix' => 'test_', ], ~~~ 然后就可以直接在`connect`方法中傳入配置參數進行切換數據庫連接,例如: ~~~ $result = Db::connect('db1')->query('select * from think_data where id = 1'); $result = Db::connect('db2')->query('select * from think_data where id = 1'); ~~~ `connect`方法中的配置參數需要完整定義,并且僅僅對當此查詢有效,下次調用`Db`類的時候還是使用默認的數據庫連接。如果需要多次切換數據庫查詢,可以使用: ~~~ $db1 = Db::connect('db1'); $db2 = Db::connect('db2'); $db1->query('select * from think_data where id = 1'); $db2->query('select * from think_data where id = 1'); ~~~ >[danger] connect方法必須直接進行查詢,下面的寫法是無效的 > ~~~ > Db::connect('db1'); > Db::query('select * from think_data where id = 1'); > ~~~ ### 參數綁定 實際開發中,可能某些數據使用的是外部傳入的變量,為了讓查詢操作更加安全,我們建議使用參數綁定機制,例如上面的操作可以改為: ~~~ Db::execute('insert into think_data (id, name ,status) values (?, ?, ?)', [8, 'thinkphp', 1]); $result = Db::query('select * from think_data where id = ?', [8]); dump($result); ~~~ 也支持命名占位符綁定,例如: ~~~ Db::execute('insert into think_data (id, name , status) values (:id, :name, :status)', ['id' => 10, 'name' => 'thinkphp', 'status' => 1]); $result = Db::query('select * from think_data where id=:id', ['id' => 10]); dump($result); ~~~
                  <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>

                              哎呀哎呀视频在线观看