久久精品中文字幕av,av.涩涩涩涩涩涩涩涩,亚洲国产日韩欧美精品成人久久久,成人福利电影免费在线观看,日产国产原创av,日韩av午夜激情,bt天堂中文字幕,超级碰人妻在线视频,欧美老熟妇久久一区二区

# 第一章:數(shù)據(jù)庫架構基礎 本章我們首先從`ThinkPHP5.0`的數(shù)據(jù)庫訪問層架構設計原理開始,然后熟悉下數(shù)據(jù)庫的配置,并掌握如何進行基礎的查詢操作,并簡單介紹了分布式、存儲過程及事務,學習內(nèi)容主要包括: [TOC=2,2] ## 數(shù)據(jù)庫架構設計 使用框架開發(fā)應用,一般不需要直接操作數(shù)據(jù)庫,而是通過框架封裝好的數(shù)據(jù)庫中間層對數(shù)據(jù)庫進行操作。這樣的好處主要有兩個:一是簡化數(shù)據(jù)庫操作,二是做到跨數(shù)據(jù)庫的一致性。這種設計的中間層通常稱之為數(shù)據(jù)庫訪問抽象層,簡稱數(shù)據(jù)訪問層(`DAL`),ThinkPHP5的數(shù)據(jù)訪問層是基于PHP內(nèi)置的`PDO`對象實現(xiàn)。一般抽象層本身并不直接操作數(shù)據(jù)庫,而是通過驅動來實現(xiàn)具體的數(shù)據(jù)庫操作。 `ThinkPHP5.0`的數(shù)據(jù)庫設計相比之前版本更加合理,數(shù)據(jù)訪問層劃分的更細化,把數(shù)據(jù)訪問對象分成了連接器、查詢器、生成器等多個對象,并通過數(shù)據(jù)庫訪問入口類統(tǒng)一調(diào)用,分工更明確,各司其職,欲知詳情且聽我慢慢道來。 ThinkPHP數(shù)據(jù)訪問層設計示意圖: ![](https://box.kancloud.cn/074e37677f8b2d6152ca77e55e2819d1_662x653.png) > 5.1版本的架構略微進行了一些調(diào)整,變成: ![](https://box.kancloud.cn/c5cef41fc884d161a52e8cb032698b08_662x454.png) ### 數(shù)據(jù)庫入口類`Db` 平常我們的數(shù)據(jù)庫操作使用的類庫一般都是數(shù)據(jù)庫的入口類`think\Db`。這個類非常的簡單,主要就是一個`connect`方法,根據(jù)數(shù)據(jù)庫配置參數(shù)連接數(shù)據(jù)庫(注意這里的連接并非真正的連接數(shù)據(jù)庫,只是做好了隨時連接的準備工作,只有在實際查詢的時候才會真正去連接數(shù)據(jù)庫,是一種惰性連接)并獲取到數(shù)據(jù)庫連接對象的實例。 `Db`類都是靜態(tài)方法調(diào)用,但看起來這個類啥都沒實現(xiàn),那是怎么操作數(shù)據(jù)庫的呢,其實就是封裝了數(shù)據(jù)庫操作方法的**靜態(tài)調(diào)用**(利用`__callStatic`方法),下面是代碼實現(xiàn): ~~~ // 調(diào)用驅動類的方法 public static function __callStatic($method, $params) { // 自動初始化數(shù)據(jù)庫 return call_user_func_array([self::connect(), $method], $params); } ~~~ 理論上來說,框架并不依賴`Db`類,該類的存在只是為了簡化數(shù)據(jù)庫抽象層的操作而提供的一個工廠類,否則你就需要單獨實例化不同的數(shù)據(jù)庫連接類。因此,看似可有可無的`Db`類就成了數(shù)據(jù)訪問層實現(xiàn)的點睛之筆了^_^ >[danger] 所有的數(shù)據(jù)庫操作都是經(jīng)過`Db`類調(diào)用,并且`Db`類是一個靜態(tài)類,但`Db`類自身只有一個公共方法`connect`。 ### 連接器類`Connection` 顧名思義,連接類的作用就是連接數(shù)據(jù)庫,也稱為連接器。我們知道,不同的數(shù)據(jù)庫的連接方式和參數(shù)都是不同的,連接類就是要解決這個差異問題。 數(shù)據(jù)庫入口類里面實例化的類其實就是對應數(shù)據(jù)庫的連接類,連接類的基類是`think\db\Connection`。例如,需要連接`Mysql`數(shù)據(jù)庫的話,就必須定義一個`Mysql`連接類(內(nèi)置由`think\db\connector\Mysql`類實現(xiàn),繼承了`think\db\Connection`類),當然具體的連接類名沒有固定的規(guī)范(例如,`MongoDb`的連接類就是`think\mongo\Connection`)。如果某個數(shù)據(jù)庫的連接擴展類沒有繼承`think\db\Connection`,那就意味著所有的數(shù)據(jù)庫底層操作有可能被接管,在個別特殊的數(shù)據(jù)庫的擴展中就有類似的實現(xiàn),例如`MongoDb`數(shù)據(jù)庫擴展。 >[danger] 數(shù)據(jù)庫連接都是惰性的,只有最終執(zhí)行SQL的時候才會進行連接。 連接器是數(shù)據(jù)訪問層的基礎,基于PHP本身的`PDO`實現(xiàn)(如果你還不了解`PDO`,請參考PHP官方手冊中[PDO](http://php.net/manual/zh/book.pdo.php)部分,不在本書的討論范疇),連接類的主要作用就是連接具體的數(shù)據(jù)庫,以及完成基本的數(shù)據(jù)庫底層操作,包括對分布式、存儲過程和事務的完善處理。而更多的數(shù)據(jù)操作則交由查詢類完成。 框架內(nèi)置的連接類包括: |數(shù)據(jù)庫|連接類| |---|---| |Mysql|think\db\connector\Mysql| |Pgsql|think\db\connector\Pgsql| |Sqlite|think\db\connector\Sqlite| |Sqlsrv|think\db\connector\Sqlsrv| >如果是僅僅使用原生SQL查詢的話,只需要使用連接類就可以了(通過調(diào)用Db類完成) 連接器類的作用小結: * 連接數(shù)據(jù)庫; * 獲取數(shù)據(jù)表和字段信息; * 基礎查詢(原生查詢); * 事務支持; * 分布式支持; ### 查詢器類`Query` 除了基礎的原生查詢可以在連接類完成之外,其它的查詢操作都是調(diào)用查詢類的方法,查詢類內(nèi)完成了數(shù)據(jù)訪問層最重要的工作,銜接了連接類和生成類,統(tǒng)一了數(shù)據(jù)庫的查詢用法,所以查詢類是不需要單獨驅動配合的,我們也稱之為查詢器。無論采用什么數(shù)據(jù)庫,我們的查詢方式是統(tǒng)一的,因為數(shù)據(jù)訪問層核心只有一個唯一的查詢類:`think\db\Query`。 `Query`類封裝了所有的數(shù)據(jù)庫`CURD`方法的優(yōu)雅實現(xiàn),包括鏈式方法及各種查詢,并自動使用了`PDO`參數(shù)綁定(參數(shù)自動綁定是在生成器類解析生成SQL時完成),最大程度地保護你的程序避免受數(shù)據(jù)庫注入攻擊,查詢操作會調(diào)用生成類生成對應數(shù)據(jù)庫的SQL語句,然后再調(diào)用連接類提供的底層原生查詢方法執(zhí)行最終的數(shù)據(jù)庫查詢操作。 >[danger] 所有的數(shù)據(jù)庫查詢都使用了`PDO`的預處理和參數(shù)綁定機制。你所看到的大部分數(shù)據(jù)庫方法都來自于查詢類而并非`Db`類,這一點很關鍵,也就是說雖然我們始終使用`Db`類操作數(shù)據(jù)庫,而實際上大部分方法都是由查詢器類提供的方法。 ### 生成器類`Builder` 生成類的作用是接收`Query`類的所有查詢參數(shù),并負責解析生成對應數(shù)據(jù)庫的原生`SQL`語法,然后返回給`Query`類進行后續(xù)的處理(包括交給連接類進行`SQL`執(zhí)行和返回結果處理),也稱為(語法)生成器。生成類的作用其實就是解決不同的數(shù)據(jù)庫查詢語法之間的差異。查詢類實現(xiàn)了統(tǒng)一的查詢接口,而生成類負責數(shù)據(jù)庫底層的查詢對接。 >[danger] 生成類一般不需要自己調(diào)用,而是由查詢類自動調(diào)用的。也可以這么理解,生成類和查詢類是一體的,事實上它們合起來就是通常我們所說的查詢構造器(因為實際的查詢操作還是在連接器中執(zhí)行的)。 通常每一個數(shù)據(jù)庫連接類都會對應一個生成類,框架內(nèi)置的生成類包括: |數(shù)據(jù)庫|生成類| |---|---| |Mysql|think\db\builder\Mysql| |Pgsql|think\db\builder\Pgsql| |Sqlite|think\db\builder\Sqlite| |Sqlsrv|think\db\builder\Sqlsrv| 這些生成類都繼承了核心提供的生成器基類`think\db\Builder`,每個生成器類只需要提供差異部分的實現(xiàn)。 ## 數(shù)據(jù)庫配置 數(shù)據(jù)庫的配置參數(shù)有很大的學問,也是你掌握數(shù)據(jù)庫操作的基礎,主要用于數(shù)據(jù)庫的連接以及查詢的相關設置。 數(shù)據(jù)庫的配置參數(shù)用于連接類的架構方法,而由于我們并不直接操作連接類,所以,配置參數(shù)主要通過`Db`類傳入并設置到當前的數(shù)據(jù)庫連接類。 數(shù)據(jù)庫配置分為**靜態(tài)配置**和**動態(tài)配置**兩種方式,靜態(tài)配置是指在數(shù)據(jù)庫配置文件中進行配置,動態(tài)配置是指在Db類或者`Query`類的`connect`方法中傳入動態(tài)的配置參數(shù)。 安裝好ThinkPHP5之后,默認在`application`目錄下面會有一個`database.php`文件,這就是應用的數(shù)據(jù)庫配置文件,如果你的模塊需要單獨的數(shù)據(jù)庫配置文件,那么只需要在模塊目錄下面創(chuàng)建一個`database.php`文件即可,并且只需要定義和應用數(shù)據(jù)庫配置文件有差異的部分。 >[danger] 數(shù)據(jù)庫配置文件中配置的是默認的數(shù)據(jù)庫連接配置,如果你有多個數(shù)據(jù)庫連接,額外的數(shù)據(jù)庫連接是在應用配置文件中完成的(參考后面的動態(tài)數(shù)據(jù)庫連接)。 ~~~ ├─application │ ├─index │ │ ├─database.php (模塊)數(shù)據(jù)庫配置文件 │ │ └─ ... │ ├─database.php (應用)數(shù)據(jù)庫配置文件 │ └─ ... ~~~ > 我們下面的數(shù)據(jù)庫配置文件都以應用數(shù)據(jù)庫配置文件為例說明。 默認的應用數(shù)據(jù)庫配置文件如下: ~~~ return [ // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => '', // 用戶名 'username' => 'root', // 密碼 'password' => '', // 端口 'hostport' => '', // 連接dsn 'dsn' => '', // 數(shù)據(jù)庫連接參數(shù) 'params' => [], // 數(shù)據(jù)庫編碼默認采用utf8 'charset' => 'utf8', // 數(shù)據(jù)庫表前綴 'prefix' => '', // 數(shù)據(jù)庫調(diào)試模式 'debug' => true, // 數(shù)據(jù)庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器) 'deploy' => 0, // 數(shù)據(jù)庫讀寫是否分離 主從式有效 'rw_separate' => false, // 讀寫分離后 主服務器數(shù)量 'master_num' => 1, // 指定從服務器序號 'slave_no' => '', // 是否嚴格檢查字段是否存在 'fields_strict' => true, // 數(shù)據(jù)集返回類型 'resultset_type' => 'array', // 自動寫入時間戳字段 'auto_timestamp' => false, // 時間字段取出后的默認時間格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要進行SQL性能分析 'sql_explain' => false, // Builder類 'builder' => '', // Query類 'query' => '\\think\\db\\Query', ]; ~~~ 最關鍵的參數(shù)就是下面幾個(其它參數(shù)后面會陸續(xù)涉及): |參數(shù)名|作用| |---|---| |type|數(shù)據(jù)庫類型或者連接類名| |hostname|數(shù)據(jù)庫服務器地址(一般是IP地址,默認為`127.0.0.1`)| |username|數(shù)據(jù)庫用戶名(默認為`root`)| |password|數(shù)據(jù)庫用戶密碼(默認為空)| |database|使用的數(shù)據(jù)庫名稱| |charset|數(shù)據(jù)庫編碼(默認為`utf8`)| `type`參數(shù)嚴格來說其實配置的是連接類名(而不是數(shù)據(jù)庫類型),支持命名空間完整定義,不帶命名空間定義的話,默認采用`\think\db\connector`作為命名空間(內(nèi)置連接類的命名空間)。你完全可以在應用中擴展自己的數(shù)據(jù)庫連接類,例如配置為: ~~~ // 配置數(shù)據(jù)庫類型(連接類)為自定義 'type' => '\app\db\Mysql', ~~~ 這樣就可以自己替換或者擴展一些額外的數(shù)據(jù)庫操作方法。 >[danger] 自定義連接類的時候,請注意設置數(shù)據(jù)庫配置中的`builder`參數(shù)避免找不到對應生成器類。 `ThinkPHP5.0`采用PDO來統(tǒng)一操作數(shù)據(jù)庫,而連接類的最關鍵的作用就是通過配置連接到數(shù)據(jù)庫,PDO的連接方法參數(shù)如下: >[info] #### PDO::__construct ( 'DSN' ,'用戶名','密碼','連接參數(shù)(數(shù)組)' ) 數(shù)據(jù)庫的數(shù)據(jù)源名稱(`DSN`)是最關鍵的一個參數(shù),連接類負責把數(shù)據(jù)庫配置參數(shù)自動轉換為一個有效的`DSN`數(shù)據(jù)源名稱。如果你有特殊的連接語法需求,則可以通過配置數(shù)據(jù)庫配置文件中的`dsn`參數(shù)來解決,該配置參數(shù)的值會直接用于PDO連接,例如: ~~~ // 連接dsn 'dsn' => 'mysql:unix_socket=/tmp/mysql.sock;dbname=demo', ~~~ 數(shù)據(jù)庫支持斷線重連機制(默認關閉),可以設置(`V5.0.6+`版本僅支持Mysql數(shù)據(jù)庫,`V5.0.9+`版本開始支持內(nèi)置所有數(shù)據(jù)庫): ~~~ // 開啟斷線重連 'break_reconnect' => true, ~~~ 除了`DSN`數(shù)據(jù)源名稱,`PDO`的連接參數(shù)也可以單獨設置,每個連接驅動都有自己的連接參數(shù)設置,`Mysql`連接器內(nèi)置采用的參數(shù)包括如下: ~~~ PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, PDO::ATTR_STRINGIFY_FETCHES => false, PDO::ATTR_EMULATE_PREPARES => false, ~~~ 可以在數(shù)據(jù)庫配置文件中設置`params`參數(shù),會和內(nèi)置的連接參數(shù)合并,例如: ~~~ // 數(shù)據(jù)庫連接參數(shù) 'params' => [ // 使用長連接 \PDO::ATTR_PERSISTENT => true, // 數(shù)據(jù)表字段統(tǒng)一轉換為小寫 \PDO::ATTR_CASE => \PDO::CASE_LOWER, ], ~~~ 常用數(shù)據(jù)庫連接參數(shù)(params)可以參考[PHP在線手冊](http://php.net/manual/zh/pdo.constants.php)中的以`PDO::ATTR_`開頭的常量。 ## 如何開始查詢 在開始學習查詢之前,我們首先在`demo`數(shù)據(jù)庫中創(chuàng)建一個`data`測試表。 ~~~ CREATE TABLE IF NOT EXISTS `data`( `id` int(8) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL COMMENT '名稱', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; ~~~ 然后設置數(shù)據(jù)庫配置文件內(nèi)容為(如果有密碼請自行修改): ~~~ return [ // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => 'demo', // 用戶名 'username' => 'root', // 密碼 'password' => '', // 開啟數(shù)據(jù)庫調(diào)試 'debug' => true, ]; ~~~ > 特別注意我們在配置中開啟了`debug`參數(shù),表示開啟數(shù)據(jù)庫的調(diào)試模型,開啟后會記錄數(shù)據(jù)庫的連接信息和SQL日志,數(shù)據(jù)庫的調(diào)試模式和應用的調(diào)試模式是兩個不同的概念。 配置完數(shù)據(jù)庫連接信息后,我們就可以直接使用`Db`類進行數(shù)據(jù)庫運行原生SQL操作了,你無需關心數(shù)據(jù)庫的連接操作,系統(tǒng)會自動使用數(shù)據(jù)庫配置參數(shù)進行數(shù)據(jù)庫的連接操作。 `Db`類的方法都是靜態(tài)調(diào)用(不需要去實例化`think\Db`類),`Db`類的查詢方法有很多(大部分查詢都是使用的查詢構造器),本章內(nèi)容暫時只講兩個用于原生查詢的方法,包括`query`(查詢操作)和`execute`(寫入操作),更多的查詢方法會在查詢構造器章節(jié)作出詳細講解。 數(shù)據(jù)庫查詢的所有示例都需要寫到一個控制器的方法里面,我們現(xiàn)在假設你已經(jīng)定義了一個下面的控制器操作方法: ~~~ <?php namespace app\index\controller; use think\Db; class Index { public function index() { // 這里是數(shù)據(jù)庫操作的測試代碼 // ... return; } } ~~~ > 一般來說并不建議在控制器的操作方法中直接操作數(shù)據(jù)庫Db類,但由于我們還沒涉及到模型章節(jié)的內(nèi)容,因此,目前的寫法僅為了演示數(shù)據(jù)庫的示例代碼。 并且在應用配置文件中開啟頁面Trace顯示: ~~~ // 應用Trace 'app_trace' => true, ~~~ > 開啟頁面Trace的作用是為了方便我們查看當前請求的SQL語句信息以及執(zhí)行時間(需要開啟數(shù)據(jù)庫調(diào)試模式后有效)。 然后在`index`操作方法中添加下面測試代碼: ~~~ Db::execute('insert into data (id, name) values (1, "hinkphp")'); Db::query('select * from data where id=1'); ~~~ > 對數(shù)據(jù)表的CURD操作,除了`select`和存儲過程調(diào)用使用`query`方法之外,其它的操作都使用`execute`方法,這里就不再一一演示了。 訪問頁面后,顯示空白,點擊右下角的 ![](https://box.kancloud.cn/e7ef90f1c9c57badf87f0b6b2f1f514e_108x34.png) 就可以打開頁面Trace信息,切換到SQL一欄,可以看到下面的類似信息 ![](https://box.kancloud.cn/5a5c525382be4cf271e7c6187555268e_627x127.png) 第一條表示數(shù)據(jù)庫的連接信息(連接消耗時間以及連接的DSN),后面的兩條就表示當前操作執(zhí)行的SQL語句,由于我們使用的是原生查詢,所以SQL語句和你的代碼里面的SQL語句是一致的,每條SQL語句最后會顯示該SQL語句的執(zhí)行消耗時間。 細心的朋友會發(fā)現(xiàn)`Db`類里面并沒有`query`和`execute`方法,其實在調(diào)用`Db`類的方法(`connect`方法除外)之前,都會先調(diào)用`connect`方法進行數(shù)據(jù)庫的初始化(前面提過的`__callStatic`方法),由于`connect`方法會返回一個數(shù)據(jù)庫連接類的對象實例(根據(jù)配置參數(shù)實現(xiàn)了單例),所以`Db`類調(diào)用的`query`和`execute`方法其實就是連接器類(`Connection`)的方法,這一點必須理解,否則你很難理解數(shù)據(jù)庫的查詢操作。 ## 使用參數(shù)綁定 上面的例子是實際開發(fā)中其實并不建議,原則上我們在使用原生查詢的時候最好使用參數(shù)綁定避免SQL注入,例如: ~~~ Db::execute('insert into data (id, name) values (?, ?)',[2,'kancloud']); Db::query('select * from data where id=?',[2]); ~~~ 頁面Trace信息中會顯示實際運行的SQL語句 ![](https://box.kancloud.cn/78b87a70b13a59bda6596d2e9f3a4990_621x121.png) 也支持命名占位符綁定,例如: ~~~ Db::execute('insert into data (id, name) values (:id, :name)',['id'=>3,'name'=>'topthink']); Db::query('select * from data where id=:id',['id'=>3]); ~~~ >[danger] 參數(shù)綁定的變量不需要使用引號 同樣顯示的實際執(zhí)行SQL如下: ![](https://box.kancloud.cn/b56f04ef55efe9011c5cef1ed2af8293_615x125.png) 我們看到查詢語句中的id的值是字符串的,由于參數(shù)綁定默認都是使用的字符串,如果需要指定為數(shù)字類型,可以使用下面的方式: ~~~ Db::execute('insert into data (id, name) values (:id, :name)',['id'=>[4,\PDO::PARAM_INT],'name'=>'onethink']); Db::query('select * from data where id=:id',['id'=>[4,\PDO::PARAM_INT]]); ~~~ 這次查看實際的執(zhí)行SQL會有細微的變化 ![](https://box.kancloud.cn/d91388d51e7651b6b58e870a61db8773_629x130.png) PDO命名占位綁定不支持一個參數(shù)多處綁定,下面的用法會報錯: ~~~ Db::execute('insert into data (name) values (:name),(:name)',['name'=>'thinkphp']); ~~~ ![](https://box.kancloud.cn/3f4cf9094d2ee94c806f801b341419db_668x349.png) 該錯誤信息表示你的參數(shù)綁定參數(shù)數(shù)量不符。 ## 查詢返回值 使用`Db`類查詢數(shù)據(jù)庫的話,`query`方法的返回值是一個二維數(shù)組的數(shù)據(jù)集,每個元素就是一條記錄,例如: ~~~ array (size=1) 0 => array (size=5) 'id' => int 8 'name' => string 'thinkphp' (length=8) ~~~ >[danger] 如果沒有查詢到任何數(shù)據(jù),返回值就是一個空數(shù)組。 相比`query`方法,`execute`方法的返回值就比較單純,一般就是返回影響(包括新增和更新)的記錄數(shù),如果沒有影響任何記錄,則返回值為`0`,所以千萬不要用布爾值來判斷`execute`是否執(zhí)行成功,事實上,在`5.0`里面不需要判斷是否成功,因為如果發(fā)生錯誤一定會拋出異常。 ## 動態(tài)連接數(shù)據(jù)庫 當你需要使用多個數(shù)據(jù)庫連接的時候,就需要使用`connect`方法動態(tài)切換到另外一個數(shù)據(jù)庫連接,假設存在另外一個數(shù)據(jù)庫`test`,并且復制`data`過去更名為`test`,然后測試下面的示例: ~~~ Db::query('select * from data where id = 2'); Db::connect([ // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => 'test', // 用戶名 'username' => 'root', // 密碼 'password' => '', // 開啟調(diào)試模式 'debug' => true, ])->query('select * from test where id = 1'); Db::query('select * from data where id = 3'); ~~~ 頁面Trace的顯示信息可以看出來使用了兩次數(shù)據(jù)庫連接和執(zhí)行了三次查詢,并且數(shù)據(jù)庫連接切換并沒有影響默認的查詢(第三個查詢還是使用的默認數(shù)據(jù)庫配置連接,`test`數(shù)據(jù)庫中并不存在`data`表,如果連接的還是第二個數(shù)據(jù)庫連接的話肯定會報錯)。 ![](https://box.kancloud.cn/fe13ae54473c51ab481ff7813be54a09_620x176.png) 有時候,我們只需要設置一些基本的數(shù)據(jù)庫配置參數(shù),可以簡化成一個字符串格式定義(該格式為ThinkPHP使用規(guī)范,而不是PDO連接規(guī)范,不要和`DSN`混淆起來): ~~~ Db::connect('mysql://root@127.0.0.1/demo#utf8') ->query('select * from data where id = 1'); ~~~ 字符串格式的連接信息規(guī)范格式如下: >[info]#### 數(shù)據(jù)庫類型://用戶名[:用戶密碼]@數(shù)據(jù)庫服務器地址[:端口]/數(shù)據(jù)庫名[?參數(shù)1=值&參數(shù)2=值]#數(shù)據(jù)庫編碼 `Db`類的`connect`方法會返回一個數(shù)據(jù)庫連接對象實例,相同的連接參數(shù)返回的是同一個對象實例,除非你強制重新實例化,例如: ~~~ Db::connect([ // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => 'demo', // 用戶名 'username' => 'root', // 密碼 'password' => '', ],true)->query('select * from data where id = 1'); ~~~ 這樣,每次調(diào)用都會重新實例化數(shù)據(jù)庫的連接類。 為了便于統(tǒng)一管理,你可以把數(shù)據(jù)庫配置參數(shù)納入配置文件,例如在應用配置文件中添加: ~~~ 'db_config' => [ // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => 'demo', // 用戶名 'username' => 'root', // 密碼 'password' => '', ], ~~~ 或者使用字符串方式定義 ~~~ 'db_config' => 'mysql://root@127.0.0.1/demo', ~~~ >[danger] 上面的`db_config`配置參數(shù)不是在數(shù)據(jù)庫配置文件中定義,而是在應用配置文件或者模塊配置文件中定義。 然后,使用下面的方式來動態(tài)連接獲取切換連接 ~~~ Db::connect('db_config') ->query('select * from data where id=:id', ['id'=>3]); ~~~ 當`connect`方法傳入的連接參數(shù)是字符串并且不包含`/`等特殊符號的話,表示使用的是預定義數(shù)據(jù)庫配置參數(shù)。 ## 分布式支持 數(shù)據(jù)訪問層支持分布式數(shù)據(jù)庫,包括讀寫分離,要啟用分布式數(shù)據(jù)庫,需要開啟數(shù)據(jù)庫配置文件中的`deploy`參數(shù): ~~~ return [ // 啟用分布式數(shù)據(jù)庫 'deploy' => 1, // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '192.168.1.1,192.168.1.2', // 數(shù)據(jù)庫名 'database' => 'demo', // 數(shù)據(jù)庫用戶名 'username' => 'root', // 數(shù)據(jù)庫密碼 'password' => '', // 數(shù)據(jù)庫連接端口 'hostport' => '', ]; ~~~ 啟用分布式數(shù)據(jù)庫后,`hostname`參數(shù)是關鍵,`hostname`的個數(shù)決定了分布式數(shù)據(jù)庫的數(shù)量,默認情況下第一個地址就是主服務器。 主從服務器支持設置不同的連接參數(shù),包括: |連接參數(shù)| |---| |username| |password| |hostport| |database| |dsn| |charset| 如果主從服務器的上述參數(shù)一致的話,只需要設置一個,對于不同的參數(shù),可以分別設置,例如: ~~~ return [ // 啟用分布式數(shù)據(jù)庫 'deploy' => 1, // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '192.168.1.1,192.168.1.2,192.168.1.3', // 數(shù)據(jù)庫名 'database' => 'demo', // 數(shù)據(jù)庫用戶名 'username' => 'root,slave,slave', // 數(shù)據(jù)庫密碼 'password' => '123456', // 數(shù)據(jù)庫連接端口 'hostport' => '', // 數(shù)據(jù)庫字符集 'charset' => 'utf8', ]; ~~~ >記住,要么相同,要么每個都要設置。 還可以設置分布式數(shù)據(jù)庫的讀寫是否分離,默認的情況下讀寫不分離,也就是每臺服務器都可以進行讀寫操作,對于主從式數(shù)據(jù)庫而言,需要設置讀寫分離,通過下面的設置就可以: ~~~ 'rw_separate' => true, ~~~ 在讀寫分離的情況下,默認第一個數(shù)據(jù)庫配置是主服務器的配置信息,負責寫入數(shù)據(jù),如果設置了`master_num`參數(shù),則可以支持多個主服務器寫入(每次隨機連接其中一個主服務器)。其它的地址都是從數(shù)據(jù)庫,負責讀取數(shù)據(jù),數(shù)量不限制。每次連接從服務器并且進行讀取操作的時候,系統(tǒng)會隨機進行在從服務器中選擇。同一個數(shù)據(jù)庫連接的每次請求只會連接一次主服務器和從服務器,如果某次請求的從服務器連接不上,會自動切換到主服務器進行查詢操作。 如果不希望隨機讀取,或者某種情況下其它從服務器暫時不可用,還可以設置`slave_no` 指定固定服務器進行讀操作,`slave_no`指定的序號表示`hostname`中數(shù)據(jù)庫地址的序號,從`0`開始。 調(diào)用查詢類或者模型的`CURD`操作的話,系統(tǒng)會自動判斷當前執(zhí)行的方法是讀操作還是寫操作并自動連接主從服務器,如果你用的是原生SQL,那么需要注意系統(tǒng)的默認規(guī)則: 寫操作必須用數(shù)據(jù)庫的`execute`方法,讀操作必須用數(shù)據(jù)庫的`query`方法,否則會發(fā)生主從讀寫錯亂的情況。 發(fā)生下列情況的話,會自動連接主服務器: * 使用了數(shù)據(jù)庫的寫操作方法(`execute`/`insert`/`update`/`delete`以及衍生方法); * 如果調(diào)用了數(shù)據(jù)庫事務方法的話,會自動連接主服務器; * 從服務器連接失敗,會自動連接主服務器; * 調(diào)用了查詢構造器的`lock`方法; * 調(diào)用了查詢構造器的`master`方法 >[danger] 主從數(shù)據(jù)庫的數(shù)據(jù)同步工作不在框架實現(xiàn),需要數(shù)據(jù)庫考慮自身的同步或者復制機制。如果在大數(shù)據(jù)量或者特殊的情況下寫入數(shù)據(jù)后可能會存在同步延遲的情況,可以調(diào)用`master()`方法進行主庫查詢操作。 >[info] 在實際生產(chǎn)環(huán)境中,很多云主機的數(shù)據(jù)庫分布式實現(xiàn)機制和本地開發(fā)會有所區(qū)別,但通常會采下面用兩種方式: > > * 第一種:提供了寫IP和讀IP(一般是虛擬IP),進行數(shù)據(jù)庫的讀寫分離操作; > * 第二種:始終保持同一個IP連接數(shù)據(jù)庫,內(nèi)部會進行讀寫分離IP調(diào)度(阿里云就是采用該方式)。 ## 存儲過程調(diào)用 數(shù)據(jù)訪問層支持存儲過程調(diào)用,調(diào)用數(shù)據(jù)庫存儲過程使用下面的方法: ~~~ $resultSet = Db::query('call procedure_name'); foreach ($resultSet as $result) { } ~~~ 存儲過程返回的是一個數(shù)據(jù)集,如果你的存儲過程不需要返回任何的數(shù)據(jù),那么也可以使用`execute`方法: ~~~ Db::execute('call procedure_name'); ~~~ 存儲過程可以支持輸入和輸出參數(shù),以及進行參數(shù)綁定操作。 ~~~ $resultSet = Db::query('call procedure_name(:in_param1,:in_param2,:out_param)', [ 'in_param1' => $param1, 'in_param2' => [$param2, PDO::PARAM_INT], 'out_param' => [$outParam, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 4000], ]); ~~~ 輸出參數(shù)的綁定必須額外使用`PDO::PARAM_INPUT_OUTPUT`,并且可以和輸入?yún)?shù)公用一個參數(shù)。 >[danger] 無論存儲過程內(nèi)部做了什么操作,每次存儲過程調(diào)用僅僅被當成一次查詢。 ## 數(shù)據(jù)庫事務 5.0對數(shù)據(jù)庫事務的封裝更為完善,事務的支持由連接器類來完成,但查詢器類中也對事務進行了封裝調(diào)用,不過我們?nèi)匀恢恍枰ㄟ^Db類便可完成事務操作。 >[danger] 使用事務處理的話,需要數(shù)據(jù)庫引擎支持事務處理。比如`MySQL`的`MyISAM`類型不支持事務處理,需要使用`InnoDB`引擎。 最簡單的方法是使用`transaction`方法操作數(shù)據(jù)庫事務,會自動控制事務處理,當發(fā)生任何異常會自動回滾,例如: ~~~ Db::transaction(function () { Db::table('user')->find(1); Db::table('user')->where('id', 1)->save(['name' => 'thinkphp']); Db::table('user')->delete(1); }); ~~~ 也可以手動控制事務,例如: ~~~ // 啟動事務 Db::startTrans(); try{ Db::table('user')->find(1); Db::table('user')->where('id',1)->save(['name'=>'thinkphp']); Db::table('user')->delete(1); // 提交事務 Db::commit(); } catch (\Exception $e) { // 回滾事務 Db::rollback(); } ~~~ >[danger] 在事務操作的時候,確保你的數(shù)據(jù)庫連接是同一個,否則事務會失效,`V5.0.9`版本之前的`db`助手函數(shù)都是默認重新鏈接數(shù)據(jù)庫的,請不要在事務中使用。 ## 總結 通過本章的學習,你應該了解了5.0的數(shù)據(jù)庫架構設計和數(shù)據(jù)庫抽象訪問層的組成,以及如何配置數(shù)據(jù)庫信息和使用基礎的原生查詢,掌握了用`Db`類的`connect`方法切換不同的數(shù)據(jù)庫連接,基本了解了存儲過程及事務的用法。后面一章,我們會先來了解下數(shù)據(jù)庫的創(chuàng)建和數(shù)據(jù)遷移,之后就會進入真正的數(shù)據(jù)庫查詢的學習了。
日本少妇人妻xxxx| 欧美日韩精品一区电影| 99热2这里只有精品| 亚洲视频欧美视频另类| 国产精品久久久久成人片| 日韩草比网站在线免费观看| 欧美一区二区三区成人免费看 | 99九九99九九热视频| 日日碰狠狠躁久久躁一区二区| 日韩少妇视频在线直播| 亚洲熟妇免费在线视频| 久久五月婷婷综合视频| 欧美日韩一区二区综合视频| 久久2020精品免费网站| 亚洲第一黄色天堂| 日韩免费美女电影| 久久国产精品久久伊人麻豆| av福利网站在线观看| www.成人国产精品| 91国偷自产一区二区三区偷拍 | 先锋男人资源中文字幕| www.色av成人| 亚洲午夜电影久久久| 亚洲激情国产一区| 91九色porny国产视频| 国产aⅴ爽av久久久久成| 日产av一区二区在线观看| 97精品久久人人爽人人爽| 精品国产一区二区三区无码蜜桃| 国产又大又长又粗又硬免费视频 | 国产亚洲欧美日韩在线首页| 国产一区二区三区a级毛片| 亚洲情欲大片在线观看| 999热这里只有精品在线| 精品乱码一区二区三区四区| 精品人妻久久久久中文字幕19禁| 热久久免费频精品18| 自拍偷拍亚洲欧美另类| 91久久精品日日躁夜夜躁| 欧洲av偷拍亚洲av偷拍 | 国产精品网址在线观看| japanese 在线中文字幕| 蜜桃黄色av网站免费播放| 亚洲av激情小说| 精品久久中文字幕系列| 亚洲综合色激情五月| 久久亚洲熟妇中文字幕| 国产一区二区久久久久久| 久久久久999久久日| 精品蜜臀久久久久抄底| 美女免费一二三区视频| 中文字幕日韩久久精品tv| 激情婷婷综合久久五月天| 国产 欧美 日韩 视频| 99热在线精品免费观看| 亚洲一区二区三区久久aa| 性欧美另类sex极品free | 日本中文字幕久久免费精品| 久久精品色婷婷国产网站| 日韩人妻插舔激情午夜 | 久久久久久久久人妻精品| 99热在线精品免费观看| 亚洲日韩视频高清在线观看| 日韩精品综合免费视频| 人妻熟女视频免费观看| 麻豆丝袜美女人妻中文| 精品中文久久久久久| 亚洲欧美日韩综合专区| 2023亚洲男人的天堂| 国产精品久久久久久久网站门| 91麻豆精品91久久久久同性 | 久久视频这里都是精品| 精品人妻一区二区三区√| 日韩日韩av在线| 久操免费福利在线视频观看视频 | 91丝袜放荡丝袜脚交| 精品人妻一区二区三区线国色天香| 欧美日韩亚洲大片在线| 久久久久久添逼视频| 精品人妻熟女在线视频| 国产成人精品久久综合| 日本aaaa视频在线观看| 亚洲精品久久久久久久久蜜桃| 热热久久这里只有精品| 91亚洲国产成人久久精品app | 日本久久久大片中文字幕| 久久人妻少妇嫩草av蜜桃动态图| 日韩卡一卡二卡三卡四卡五| 中文字幕av久久爽爽| 91在线国产九色porny| 欧美日韩亚洲国产ay| 亚洲欧美国产另类91综合| 久久九特黄的免费大片| 五月婷久久综合狠狠爱97| 色婷婷中文字幕基地| 99热这里只有的精品| 日本二次元少女裸| 亚洲欧美自拍偷拍在线观看| 成人免费观看av毛片| 亚洲欧美日产人妻| 国产精品一二三四在线| 久久视频黄色观看网站| 清纯唯美激情亚洲综合另类| 欧美激情 另类视频 亚洲| 日本加勒比中文字幕久久| 777亚洲精品乱码久久| 少妇高潮喷水久久久久久桃花| 97久久碰人妻一区二区三区四| 日韩一区二区三区乱码| 青青青青青欧美在线视频观看| 天天色综合天天射综合| 日韩一区二区三区水蜜桃| 亚洲精品久久久久久久久蜜桃| 久久久成人在线免费视频| 激情黄色开心五月天| 人人妻人人澡人人看| 免费a级电影在线观看| 国产精品久久久久久久久粉嫩av| 伊人久久婷婷av| 丰满的人妻一区七区| 国产成人精品视频免费网站| 亚洲欧美日韩大陆| 91人妻人人做人碰人人| 91沈先生探花极品在线| 欧美人妻a∨中文字幕在线| 99.com精品视频| 97偷拍视频在线观看| 国语一区二区在线观看| 美女18禁久久久久麻豆| 蜜桃av 1区二区| 亚洲青青青国产观看视频| 欧美日本一道本一区二区| 亚洲自拍偷拍 av| 色图av亚洲综合| 国产欧美版日韩综合| 国产成人精品久久久女| 丰满熟女一区二区三区在线 | 久久久精品99国产国产精| 亚洲视频欧美视频另类| av国偷自产自拍自在线| 日韩在线啊啊啊的视频| 色播网站在线播放| 久久国产精品色av免费看| 中文字幕精品久久久人妻| 日韩二区不卡视频| 亚洲日本韩国欧美一起| laoyawo老鸭窝在线视频| 蜜臀av日韩特黄大片| 亚洲日韩视频高清在线观看| 中文字幕熟女人妻在线网页| 亚洲欧美在线制服丝袜| 国产亚洲天堂sss| 欧美肥臀精品一区二区三区| 欧美又色又爽又黄又粗暴| 中文字幕熟女人妻在线观看| 日韩草比网站在线免费观看 | 日韩一级黄色大片免费观看 | 精品国产乱码久久久人妻| 欧美一区二区三区aa大片| 日韩av午夜免费| 日韩av电影在线观看的| 欧美日韩国产一区二区三区免费| 成人午夜激情福利片| 97国产人妻换人妻| 日本vs欧美一区二区三区| 久久久97精品国产| 国产日韩亚洲大尺度高清| 国产一区二区免费五遮挡| 精品国产久久久久99| 99热这里只有精品网| 亚洲丰满熟妇乱xxxxx| 国产一区二区三区女同| 少妇高潮喷水久久久久久桃花| 日韩欧美颜色渔网| 日韩欧美三级一区二区在线观看 | 精品中文久久久久久| 成年美女黄色av网站| av日韩中文字幕人妻| 熟女人妻之中文字幕| 欧美自拍 亚洲偷拍| 国产99精品久久久久久圆免看片| 久热中文字幕在线精品| www日本不卡一二三区| 在线观看日韩美视频一区| 五月爱婷婷六月丁香性| 久久五月天天婷婷激情综合| 亚洲天堂黄色免费| 在线中文字幕第二页| 国产一区二区免费五遮挡| 精品久久精品久久久久| 欧美熟女人妻一区二区三区| 欧美日韩精品欧美日韩| 久久97久久免费视频| 搡老熟女一区二区三区四区视频 | 一级久久久久久久18| 亚洲天堂性色综合| 大香蕉影视日本大香蕉97| 亚洲av精品久久久蜜| 亚洲欧美日韩国产另类专区| 色婷婷精品午夜在线播放| 精品成人1区2区3区在线看片| 97人人人欧美人人妻人人| 一区二区三区内射美女毛片| 日本午夜在线免费观看| 色婷婷久久久swag精品| 人人狠狠久久综合网| 日韩精品福利性无码专区| 91嫩草17c欧美国产| 亚洲欧美日韩在线中文字幕小| 久久亚洲AV成人无码| 99九九99九九热视频| 亚洲 欧美 制服 人妻| 狠狠干中文字幕97视频| 色综合久久久久久久久| 免费观看a级在线视频| 嫩草一区二区三区四区中文| 蜜桃精品一区二区三区在| 国产亚洲精久久久久久无码色戒| 日韩手机无线看视频| 免费麻豆国产一区二区三区| 久久成人福利视频资源| 在线中文字幕第二页| 欧美熟妇人妻视频在线| 免费色婷婷在线视频| 精品一区二区三区四区日产| 日韩国产精品电影网| 亚洲欧美日韩综合专区| 日韩av福利大片在线观看| 日本熟妇乱子伦a片在线观看 | 久久蜜臀精品一区二区| 9久热这里有国产精品| 久久精品色婷婷国产网站| 日本熟妇人妻在线| 国产视频av一区二区| 91丝袜放荡丝袜脚交| 97成人免费碰碰碰视频| 亚洲aⅴ欧美综合一区二区三区| 高潮久久久久久久av免费| 欧洲美女黑人粗性暴交视| 五月黄色激情视频| 97人妻人人揉人人澡人人爽国产| 日韩在线播放视频1区| 四虎国产精品久久免费精品| 国产日韩av免费一区二区三区| 人妻啪啪视频免费看| 天天操天天干天天妻| 亚洲天堂网av中文字幕| 人妻一区二区中文字幕在线| 少妇人妻成人在线| 亚洲视频另类专区| 亚洲欧美在线制服丝袜| 日韩少妇视频在线直播| 成人黄色国产网站在线观看| 久久97久久免费视频| 日韩中文字幕在线网站| 久久久久久久久久久久久熟女a∨| 日韩不卡高清视频| 99热精品国产影视久久久影院 | 国产精品久久久久一区二区| 国产欧美一区二区二区精品| 高潮久久久久久久av免费| 精品美女1区2区3区| 精品国产麻豆免费成人网| 色噜噜狠狠躁夜夜躁| 精品人妻久久久久中文字幕19禁| 日本熟妇乱子伦a片在线观看| 国产精品亚洲精品成人| 人妻日韩精品在线观看视频| 久久国产精品——国产精品 | 精品一区二区国产在线观看| 之久精品一区二区| 欧美日韩国产综合aⅴ| 亚洲精品网站成人久久综合| 五月天色婷婷av在线| 日韩精品免费91aa| 日韩精品久久久久久久软件| 91欧美亚洲综合网| 久久久久久精品日韩| 亚洲国产精选久久| 五月婷婷六月丁香资源| 亚洲欧洲国产一区二区| 国产精品久久久久久xxx| 久久传奇网站一区三区视频| 日韩国产91综合精品| 日韩不卡高清视频| 中文字幕亚洲中文字幕| 亚洲av微乳在线| 亚洲久久亚女同性| 欧美一区二区三区激情无套| 日韩中文字幕理伦| 天天插天天日天天舔| 首页国产中文字幕av| 亚洲av网站女性向在线观看| www.成人国产精品| 久久人人爽爽人人爽av| 色哟哟免费在线播放| 香蕉在线蕉久在线| 老鸭子在线观看免费播放| 日韩在线免费视频精品| 欧美日韩亚洲国产ay| 国产一区二区三区四区中文字幕| 久久精品国产久精果冻传媒| 日韩成人免费电影三区| 亚洲欧美在线视频播放| 国产av一区二区三区天美| 四虎国产精品久久免费精品| av一级二级三级久久久| 欧美一区二区三区综合色| 人妻办公室被强d在线电影| 人人妻人人澡人人爽国产一区 | 国产 欧美 日韩 视频| 色yeye香蕉凹凸人妻三区| 九九久久国产精品久久久久| 香蕉久久久久久久久久久久女| 91熟女视频在线观看| 青青青手机版视频在线看| 国产高潮好爽受不了了视频| 中文字幕的不卡人妻| 91久久婷婷国产麻豆精品| 黑人粗大精品一区二区| 日本少妇人妻xxxx| 91啪啪啪内射网站| 精品日韩色国产在线观看| 久久2020精品免费网站| 亚洲欧洲偷拍自拍| 天美麻豆成人av精品小说| 亚洲欧美日韩中出| 最新精品成人在线| 精品激情视频在线免费观看| 精品久久一区电影亚洲| 欧美日韩精品亚洲欧美| 精品国产乱码久久久久夜深 | 亚洲制服欧美丝袜| 欧美精品一区二区在线视频| 欧美日韩国产综合aⅴ| 日韩美女在线视频一区| 日韩视频在线播放一区二区| 婷婷基地中文字幕| 亚洲成年人电影天堂| 91精品人妻一区二区三区四区| 日韩欧美三级一区二区在线观看| 欧美熟女vides| av在线免费观看网站大全| 欧美一区二区精品人妻免费视频 | 激情婷婷综合久久五月天| 精品国产久久久久99| 福利小视频国产一区| 国产免费一级a男人的天堂| 之久精品一区二区| 麻豆精品一区在线免费观看| 欧美一区二区三区综合色| 999热精品在线观看| 久久视频这里都是精品| 麻豆免费国产福利免费国产福利| 日韩在线啊啊啊的视频| 久久久久久久久久久免费网| 国产69tv精品久久| 色哟哟视频在线一区| 日韩二区不卡视频| 丰满少妇精品一区二区| 亚洲 欧美 日本 国产| 亚洲第一黄色天堂| 蜜桃精品一区二区三区在| 日本av男优巧克力| 欧美日韩精品一区电影| 精品国产一区二区三区制服| 亚洲狠狠婷婷综合久久a| av在线免费在线观看av| wwxxx中文字幕| 综合久久综合久久综合久久| 日本a级2020在线观看| 国产精品久久久久久吹吹潮| 国产精品一区二区亚瑟不卡| 日韩欧美一级在线视频| 在线观看日韩美视频一区| 亚洲最黄色的视频| 日韩成人av在线电影观看| 久久久国产精品尤物av| 麻豆成人在线免费观看视频| 综合激情伊人久久| av国偷自产自拍自在线| 日日夜夜夜视频伊人久久| 精品国产久久久久99| 俺去鲁婷婷六月色综合| 篠田优中文字幕在线播| 亚洲.欧美.日韩.| 视频免费在线观看91| 国产精品成人av麻豆| 久久视频一区二区三| 青青草成人免费电影| 国产成人精品视频免费网站| 无码人妻精品一区二区三区久久| 日本av男优巧克力| 玖玖玖玖日在线视频| 日本18禁片免费久久| 欧美人妻a∨中文字幕在线| av在线免费在线观看av| 91亚洲国产成人久久精品app| 久久99精品国产91| 黑人粗大精品一区二区| 中文字幕一线一区和二区| 亚洲狠狠婷婷综合久久a| 国产黄色主播网址大全在线播放 | 国产欧美日韩制服丝袜在线| 97成人免费碰碰碰视频| 人妻中出视频一区二区| 美女在线观看亚洲一区| 国产精品色呦呦视频免费看| 精品欧美日韩国产在线| 日韩中文字幕视频在线播放| 少妇人妻一区2区中文字幕 | 日韩免费美女电影| 亚洲国产欧美日本视频| 久久久国产一区二区视| 色图av亚洲综合| 精品国产丝袜久久久一区二区| 日韩av午夜精品| 五月婷婷六月丁香资源| 真实玩弄白嫩丰满人妻少妇三级| 久久成人福利视频资源| 日本18禁片免费久久| 色婷婷久久久swag精品| 97色视频在线看视频| 伊人久久婷婷av| 国产中文字幕在线91| 午夜日韩麻豆福利| 亚洲尺码和欧洲尺码av| 日韩欧美一二三级| 午夜寻花美女在线| 视频一区视频二区三区| 国产又大又长又粗又硬免费视频 | 99爱99久久久久久久久久| 亚洲av电影在线一区二区| 精品日韩偷拍欧美另类| 97国产免费电影网| 色播五月激情四射| 亚洲一区视频大全| 欧美精品国产精品久久久| 福利日韩精品中文字幕专区| 99精品高清免费在线视频| 精品视频在线观看一区二区97| 日韩av中文网址| 最新偷窥偷拍免费视频观看| 国产欧美日韩精品专区黑人| 中文字幕人妻一区二区在线看| 国产成人精品久久久久久蜜臀| 国产清纯白嫩美女无套| 成人国产一区二区免费| 色哟哟免费在线播放| 99久久久免费毛片基地| 中文字幕 日本伊人| 中文字幕亚洲资源天堂| 日本中文字幕久久免费精品| 欧美熟妇人妻视频在线| 午夜精品久久婷婷蜜桃| 久久久久女优免费视频| 亚洲香蕉av电影| 久久99久久com| 福利日韩精品中文字幕专区| 97人妻人人揉人人澡人人爽国产 | 99热2这里只有精品| 日韩欧美综合一区二区在线| 亚洲av微乳在线| 亚洲尺码和欧洲尺码av| av岛国不卡在线观看| 亚洲精品图片第十八页| 91久久久久久久久久粉嫩| 男人的天堂久久精平| 成人精品一区一区二区看片| 国产欧美日韩一区二区三区''| 精品国产丝袜久久久一区二区| 日韩av中文网址| 又爽又黄的免费视频91| 99.com精品视频| 国产99不卡免费在线观看| 亚洲综合精品久久| 天天日天天干一道一小| 亚洲青青青国产观看视频| 丰满人妻av白石茉莉奈电影| 亚洲综合成人久久av| 亚洲欧洲黄色图区| 亚洲激情有码一区二区| 人妻人人揉人人澡人人| 99re在线精品国产欧美久久 | 久久人妻少妇嫩草av蜜桃动态图| 激情五月天狠婷婷| 日韩精品少妇人妻熟女| 在线国产小视频麻豆| 人妻精品一区二区在线播放| 蜜桃av 1区二区| 久久综合中文字幕一区二区三区| 国产精品一区二区亚瑟不卡| 日本vs欧美一区二区三区| 最新美女激情av| 91精品乱码久久久久久| 日韩欧美综合一区二区在线| 久久综合久久综合大香蕉| 208精品福利导航| 色播五月激情四射| 熟女少妇视频一区二区在线| 黑人粗大精品一区二区| 日韩在线免费视频精品| av日韩在线有码a区| 天天干天天草天天日天天天射伊人| 一区二区三区精品乱子伦……| 亚洲国模在线视频| 97人人人欧美人人妻人人| 97人妻人人揉人人澡人人爽国产 | av传媒高清影院免费| 色综合久久久久久久久| 欧美一区二区三区激情啪啪啪| 色视频精品视频在线观看| 91免费版下载成人| 国产一区二区不卡91| 久久精品久久一区二区三区| 亚洲综合精品久久| 亚洲成人av久久久久| 先锋资源站中文字幕| 之久精品一区二区| 欧美精品一区二区在线视频| 日韩尤物人妻av在线网| 我要看一级国产黄色绿像| 日韩一级黄色大片免费观看| 91人妻露出精品在线| 福利精品视频免费观看| 国产青青91av在线视频| 日韩av一区中文| 蜜臀av日韩特黄大片| 久久蜜桃视频亚洲精品| 日本a级2020在线观看| 国产 日韩 欧美 日本| 人人妻人人澡人人看| 色婷婷中文字幕基地| 五月天丁花香婷婷| 婷婷亚洲天堂中文字幕| 天堂av最新资源在线| 97国产人妻换人妻| 91中日在线中文字幕| 日韩av一区二区三区久久久| 精品久久一区电影亚洲| 日本中文国产字幕| 清纯唯美激情五月| 91偷伦一区二区三区蜜臀| 91久久亚洲成人精品| 91高级会所在线播放| 日本女同性恋视频| 91老司机免费福利| 中文字幕av久久爽爽| 国产精品亚洲精品成人| 亚洲欧洲国产一区二区| 亚洲欧美日韩国产另类专区| 成年美女黄色av网站| 青青草青青操在线播放| 亚洲男人五月天堂| 亚洲自拍偷拍 av| 国产成人一区二区三区在线视频| av青青草原在线观看| av日韩在线免费观看网站| 精品国产麻豆免费成人网| 日韩国产91综合精品| 天天做天天舔天天射| 久久精品人妻中文字幕一区| 亚洲情欲大片在线观看| 中文字幕日韩天堂| 美女在线观看亚洲一区| 国产中文字幕在线91| 偷偷夜夜精品一区二区三区蜜桃| 日韩中文字幕在线综合网| 国产91久久久久久久| 国内精品久久久久久久久久清纯 | 五月爱婷婷六月丁香性| 91影视一区二区三区| 日韩色在线视频观看免费| 久久精品琪琪男人的天堂| 亚洲 欧美 日本 国产| 婷婷午夜美女诱惑福利电影网| 高潮久久久久久久av免费| 日韩在线啊啊啊的视频| 狠狠久久综合丁香777米奇| 麻豆丝袜美女人妻中文| 成人黄色国产网站在线观看| 亚洲五月婷婷视频| www.色av成人| 亚洲av高清不卡| 五月综合缴情婷婷六月| 久久99精品国产91| 久久亚洲 欧美 综合aⅴ| 午夜国产福利电影| 日韩草比网站在线免费观看 | 天天操天天干天天做天天射| 亚洲青青青国产观看视频| 精品97人妻无码中文永久| 精品国产麻豆免费成人网| 国产视频av一区二区| 最新精品成人在线| 最新美女激情av| 91亚洲国产成人久久精品app| 日本久久久大片中文字幕| 亚洲人妻中文字幕av首页| 久久久精品国产亚洲av网深田| 欧美激情电影在线观看不卡| 亚洲狠狠婷婷综合久久a| 日本老女人视频在线观看| 久久视频精彩在线观看| 激情亚洲一区蜜桃在线| 久草青青草原在线视频| 日韩中文字幕有码人妻在线| 欧美日韩v中文在线| 91在线无精精品一区二区| aaaaa亚洲电影| 天天色综合天天射综合| 色播网站在线播放| 久久精品国产亚洲av不卡性色| 欧美3d成人动漫在线| 久久久九九九九九精品6| 国产一区二区三区a级毛片| 人妻有码中文字幕中文| 亚洲国产精品午夜av| 丰满少妇精品一区二区| 91精品久久久久久久久不卡网站| 日本女优中文字幕在线| 欧美又色又爽又黄又粗暴| 人人妻人人爱碰千| 欧美熟女高清视频一区二区| 日韩欧美激情入口| 91嫩草17c欧美国产| 日本高清不卡视频在线播放| 色亚洲天堂色派对欧美色| 91丝袜放荡丝袜脚交| 欧美一二三区在线观看| 之久精品一区二区| 国产一区二区不卡91| 日韩有码视频在线免费观看| 加勒比精品一区二区三区| 色综合精品一区二区三区| 欧美高清在线视频99| 国产91在线播放精品| 欧美爱情动作片在线一区| 91老司机免费福利| 婷婷基地中文字幕| 熟妇人妻 一区二区三区中文字幕| 激情一区日韩一区欧美一区| 亚洲欧洲久久精品| 香蕉在线蕉久在线| 午夜三级中文字幕视频网址大全| huangse网站在线观看| 久久午夜福利电影免费试看| 美女免费一二三区视频| 国产91色在线i免费| 午夜日韩麻豆福利| 搡老熟女一区二区三区四区视频| 国产av一区二区三区天美| 日韩美女在线视频一区| 亚洲中文字幕精品高清| 人妻精品少妇嫩草麻豆| 久久爱免费视频16| 91国偷自产一区二区三区老熟女| 国产精品一区二区三区福利| 久久久久久久久人妻精品| 亚洲欧美日韩中出| 欧美一区二区三区激情无套| 日韩色在线视频观看免费| 久久精品一区二区三区人妻蜜桃| 亚洲最大成人网一区二区三区| 欧美熟女vides| 国产成人精品久久综合| www日本不卡一二三区| 国产一区二区久久久久久| 国产熟女高潮av77777| 日韩av一区二区三区久久久| av岛国不卡在线观看| 国产精品99久久电影| 日韩福利视频在线看| 欧美日韩国产一级一顶级| 中文字幕版婷婷久久| 久久久成人在线免费视频| 日本女同性恋视频| 亚洲五月婷婷视频| 视频免费在线观看91| 日本中文字幕久久免费精品| 精品久久久久久亚洲国产999| 亚洲国模私拍视频| 性欧美另类sex极品free| 日韩中文字幕一区二区三区四区| 日韩美女影院免费在线观看| 久久综合久久综合大香蕉| 思思久久国产精品视频| 福利一福利二福利三| 日韩av电影免费在线播放| 18在线观看久久久麻豆| 日韩av网址在线播放| 亚洲成人日韩丶av| 91九色porny国产视频| 91插插插操美女视频| 日韩a视频在线播放视频| 美日韩美女三级电影| 中文字幕婷婷网站| 少妇高潮一区二区三区99欧美 | 欧美熟妇精品在线观看| 人人妻人人澡人人爽国产一区| 久久精品国产亚洲av不卡性色| 精品乱码一区二区三四五六区| 99.com精品视频| 乱丰满的岳伦在线观看| 十八禁久久久久久久久久久久久久| 亚洲视频另类专区| 亚洲青青青国产观看视频| 国产一级淫片免费看久久| 91成人国产精品视频| 美女差点操死在线观看| 久久久精品蜜桃在线| 美女免费一二三区视频| 在线中文免费黄色| 国产精品一区二区三区福利| 国产精品99精品一区二区三区∴| 国产成人免费精品视频大全| 久久精品人人看人人爽| 在线中文免费黄色| 91久久婷婷国产麻豆精品| 日韩美女主播人体视频自拍首页 | 中文字幕婷婷网站| 国产精品久久欠久久al换脸综合| 久久久久中文字幕免费久久久久久| 亚洲中文字幕精品高清| 91久久久久久久久久粉嫩| 天天日天天干一道一小| 亚洲天堂黄色在线| 欧美日韩精品亚洲欧美| 狠狠干中文字幕97视频| 最美人妻一区二区三区| 成人精品1024欧美日韩| 国产精品一区二区久久精品蜜臀| 精品一区二区三区四区日产| 中文字幕国产在线观看| 色哟哟视频在线观看国产| 天天射天天舔天天射| 国产 另类 在线 欧美日韩| 日韩a大片在线观看| 国产日韩av免费一区二区三区| 亚洲最大成人网一区二区三区| 欧美日本韩国乱搞视频| 国产一区二区高清在线播放| 亚洲精品蜜桃久久久久| 激情婷婷综合久久五月天| 蜜臀久久久久精品一区二区三区| 少妇高潮一区二区三区99欧美| 97色视频在线看视频| 久久久久在线免费看| 久久免费视频观看99| 久久综合久久综合大香蕉| 高清一区二区三区日本4| 久操免费福利在线视频观看视频| av在线免费观看网站大全| 日韩欧美国产成人一区| 日韩中文字幕理伦| 亚洲日本精彩视频在线观看| av激情网站在线观看| 精品乱码一区二区三区四区| 免费a级电影在线观看| 中文字幕亚洲中文字幕| 日本高清不卡视频在线播放| 日本加勒比中文字幕久久| 日韩欧美综合一区二区在线| 99爱99久久久久久久久久| 亚洲欧美日韩国产精品综合| 日本午夜在线免费观看| www.视频一区二区三区| jizzhd国产剧情| av久久伊人精品中文字幕| 精品欧美日韩国产在线| 五月天色婷婷av在线| 色综合精品一区二区三区| 999热这里只有精品在线| 一区二区三区精品乱子伦……| 国产激情综合视频在线观看| 91在线国产九色porny| 亚洲精品蜜桃久久久久| 美女18禁久久久久麻豆| 精品乱码一区二区三四五六区| 99精品高清视频一区二区| 国产一区无码在线桃花| 欧美一区二区三区aa大片| 精品乱码一区二区三四五六区| 久久av资源男人站| 亚洲国产精品五月天久久久| av日韩在线免费观看网站| 日韩少妇视频在线直播| 自拍偷拍亚洲欧美另类| 狠狠干中文字幕97视频| 蜜臀久久久久精品一区二区三区 | 精品视频在线观看一区二区97| 亚洲 免费 在线 观看| 少妇惨叫久久久久久久| 欧美人妻激情中文视频| 国产日韩亚洲大尺度高清 | 欧美日韩国产一级一顶级| 亚洲少妇黄色一级片| 91一区二区精品在线| 蜜桃精品一区二区三区在| 精品久久久久久999| 亚洲中文字幕福利视频| 91沈先生探花极品在线| 视频在线观看黄页| 亚洲欧洲av在线| 国产清纯白嫩美女无套| 久久五月天天婷婷激情综合| 午夜在线看1000集| 久久久久在线免费看| 91国偷自产一区二区三区老熟女| 天天色天天干天天舔| 日韩有码在线免费观看视频| 国产三级久久久999111| 亚洲欧美日韩一区17c| 亚洲不卡一区av| 亚洲五月婷婷激情图片| 久久视频这里都是精品| 91国产视频网站在线观看| 亚洲国产精品五月天久久久| 日韩在线免费视频精品| 麻豆精品123在线观看| 新版天堂av资源在线| 欧美日韩精品一区电影| 天天插天天日天天舔| 久久久久久久久久久最新| 日本少妇人妻xxxx| 中文字幕精品久久伊人| 999精品插丰满少妇人妻| 五月爱婷婷六月丁香性| 瑟瑟网站免费观看| 丰满熟女一区二区三区在线| 亚洲成人久久久久| 国产精品成人av麻豆| 国产亚洲欧美日韩在线首页| 久久久久国产精品夜夜夜| 亚洲精品乱码97久久久久久| 三级亚洲天堂亚洲天堂| 国产又粗又硬又长又爽视频| 婷婷午夜美女诱惑福利电影网| 少妇高潮喷水久久久久久桃花 | 免费人妻一区二区三区免费视频| 国产成人精品久久综合| 亚洲av网站女性向在线观看| 色哟哟视频在线观看国产| 国产一区二区不卡91| 99爱99久久久久久久久久| 国产精品亚洲精品成人| 偷偷夜夜精品一区二区三区蜜桃| 亚洲第一黄色天堂| 欧美日韩亚洲国产ay| 久久视频免费有精品| 久久久96精品久久久| 91久久久久久久久久粉嫩| 女人体内射精一区二区三区| 亚洲熟妇av日韩熟妇在线| 精品国产一区二区三区制服| 日韩高清av一区| 91制片在线观看视频| 91老司机免费福利| 9久热这里有国产精品| 精品一区二区三区四区日产 | 成人免费观看av毛片| 91精品乱码久久久久久| 五月婷婷51视频免费| 欧美精品一区二区三区蜜臀| 88在线观看91蜜桃国自产| 亚洲熟妇av日韩熟妇在线| 国产青青91av在线视频| 久久男人精品男人天堂免费视频| 99国产在线拍91揄自揄视| 欧美一二三区在线观看| 精品一区二区三区四区| 成人精品一区一区二区看片| ass日本丰满熟妇pics| 国产91久久久久久久| 欧美一区二区三区激情无套| 日本av男优巧克力| 日韩av中文网址| 五月天丁花香婷婷| 亚洲精选黄色在线观看| 大香蕉久草网一区二区三区| 久久亚洲精品无码系列客服| 日韩av网址在线播放| 97成人免费碰碰碰视频| 日韩精品福利性无码专区| 国产99精品久久久久久圆免看片| 色图av亚洲综合| av岛国不卡在线观看| 亚洲精品网站成人久久综合| 国产又大又猛又黄的视频| 一本久久久久久久18| 精品aa级中文字幕人妻| 夜夜撸日日撸夜夜爽日日干| 日韩日韩av在线| 中文字幕的不卡人妻| 日韩视频在线观看一区二区| 欧美又色又爽又黄又粗暴| 亚洲乳大丰满中文字幕少妇av| 国产又粗又黄又大又长视频| 91麻豆精品91久久久久同性| 在线观看视频 你懂得| 天天摸天天舔天天爱| 国产一区二区三区女同| 午夜探花在线免费观看| 国产日韩一区二区三区啪啪啪| 国产乱子伦视频免费| 日韩亚洲丝袜系列| 91久久婷婷国产麻豆精品| 色男人天堂东京热| 五月天色图婷婷亚洲| 欧美3d成人动漫在线| 亚洲欧美日韩综合专区| 色哟哟视频在线一区| 欧美高清在线视频99| 1024 国产高清の最新合集| 日韩人妻插舔激情午夜| 少妇一区二区在线免费观看| 久久视频这里都是精品| 亚洲熟妇av日韩熟妇在线| 青青草青青操在线播放| 综合激情伊人久久| 少妇一区二区在线免费观看| 久久 99 精品视频| 欧美亚洲av日韩综合一区| 青青青在线视频自拍| 色婷婷综合免费在线视频| 日韩精品午夜免费观看| 黑人操日本女人电影| 国产乱子伦视频免费| 一区二区三区乱码视频| 亚洲成人日韩丶av| 亚洲av激情小说| 亚洲制服高清中文字幕| 中文字幕亚洲专区欧美| 国产成人一区二区三区在线视频 | 免费人妻一区二区三区免费视频 | 亚洲欧美自拍偷拍在线观看| 在线不卡日韩视频播放| 五月婷婷六月丁香资源| 日韩美女在线视频一区| 九九re精品免费视频| 天天色天天干天天舔| 国产一区二中文字幕在线免费观看 | 久久久久久久久人妻精品| 中文字幕在线有码二区| 人人妻人人爱碰千| 天美麻豆成人av精品小说| aaa久久久久久久久久网站| 中文字幕日韩久久精品tv| 国产精品亚洲精品成人| 国产精品欧美日韩五月香蕉| 欧美日韩国产色图视频| 中文字幕人妻一区二区在线看| 中文字幕版婷婷久久| 国产无av码在线观看| 亚洲激情熟女色图| 亚洲 免费 在线 观看| 久久这里只有精品久| 欧美一区二区精品人妻免费视频 | 亚洲国产精品97久久宅男| 精品久久一区电影亚洲| laoyawo老鸭窝在线视频| 国产精品久久久久久久久久69| 日本黄色成年视频| 欧洲美女黑人粗性暴交视| 色婷婷中文字幕基地| 50岁老熟女一区二区三区| 国产+日本+欧美在线观看| 最新精品成人在线| 国产精品久久久久久吹吹潮| 国产精品一二三四在线| 日韩a毛片视频免费看| 日本午夜在线免费观看| 精品蜜臀久久久久抄底| 久久行黑国产露脸精品| 国产精品欧美日韩五月香蕉| 欧美一区二区精品人妻免费视频| 欧美熟女vides| 亚洲视频欧美视频另类| 国产精品久久久久成人片| 四十路av熟女俱乐部| 亚洲成a人片7777| 欧美人妻一区二区三区在线播放| 久久伊人亚洲综合网| 亚洲一区二区三区久久aa| 国产91在线播放精品| 久久最近最新中文字幕大全| 日韩av电影免费在线播放| 黑人操日本女人电影| 亚洲欧美丝袜精品久久直播| 久久免费视频观看99| 久久av资源男人站| 中文国产成人精品久久一| 欧美3d成人动漫在线| 色婷婷中文字幕基地| 色播网站在线播放| 色噜噜狠狠躁夜夜躁| 亚洲一区二区三二区厕所偷拍| 91中文字幕制服诱惑| 99久久极品蜜桃臀精品久久| 人妻人人揉人人澡人人| 208精品福利导航| 中文字幕av最新在线| 亚洲中文字幕成人久久| 亚洲日本精彩视频在线观看| 日韩二区不卡视频| 欧美日韩精品亚洲欧美| 亚洲国产精品久久久久婷婷av| 日韩精品综合视频在线| 日韩免费美女电影| 欧美3d成人动漫在线| 91久久精品日日躁夜夜躁| 搡老熟女一区二区三区四区视频| 久久99久久com| 日韩大全毛片免费观看视频| 久久蜜桃视频亚洲精品| 国产精品一区二区三区福利| 久久成人网男人的天堂| 91熟女视频在线观看| 色哟哟免费在线播放| 国产一区二区不卡91| 久久亚洲精品无码系列客服 | 麻豆在线视频看片免费| 婷婷激情五月天图片| 麻豆精品123在线观看| 中文字幕熟女人妻在线观看| 欧美日韩人妻久久精品| 91高级会所在线播放| 亚洲一线产区二线产区区| 色哟哟免费在线播放| 91精品乱码久久久久久| 国产av在线观看麻豆| 99国产在线 精品 视频| 精品国产久久久久99| 国产日韩一区二区三区啪啪啪| av久久伊人精品中文字幕| 精品乱码久久久久久蜜臀| 日韩a视频在线播放视频| 91精品乱码久久久久久| 午夜影院av在线| 日韩福利视频在线看| 日韩黄色一级大片| 国产中文字幕在线91| huangse网站在线观看| 蜜臀久久99精品久久久久久久久 | 天天干天天草天天日天天天射伊人 | 国产+日本+欧美在线观看| 91精品乱码久久久久久| 男人的天堂久久精平| 99.com精品视频| 亚洲av综合色区手机| 欧美熟女人妻一区二区三区 | 天天干天天插天天操天天日| 久久最近最新中文字幕大全| 五月婷婷久久久久久久久| 色综合久久久久久久久| 97人妻人人揉人人澡人人爽国产| 日本熟妇乱子伦a片在线观看| 欧美一区二区三日韩| 精品一区二区国产在线观看| 欧美日韩亚洲国产ay| 国产 欧美 日韩 视频| 日韩 美女 在线观看| 日韩精品综合视频在线 | 亚洲一区二区三区久久aa| 国产精品午夜蜜av| 亚洲欧洲久久精品| 亚洲国产精品午夜av| 日韩欧美三级一区二区在线观看| 亚洲精品一区二区三区丝袜| 欧美三级中文字幕久久精品| 成年美女黄色av网站| 精品蜜臀久久久久抄底| 五月激情婷婷网络| 亚洲成人久久久久| 婷婷 少妇 av| 国产网址手机上可以看的国产网站| 久久久久国产亚洲av麻豆| 欧美一区二区三日韩| 国产成人精品久久综合| 人人妻人人澡人人看| 精品中文久久久久久| 丰满大屁股熟妇猛交xxx| 国产精品网址在线观看| 天天日天天日天天日天天日| 国产精品综合手机在线| 另类蜜桃刺激视频在线观看| 亚洲成人久久久久| 久久99精品国产91| 午夜精品福利小视频| 色哟哟视频在线一区| 久久国产精品色av免费看| 国产欧美日韩不卡在线观看| av日韩在线免费观看网站| 精品久久久久久18免费网站| 亚洲一区视频大全| 久久亚洲精品日韩高清| 精品乱码久久久久久蜜臀| 国产乱人妻精品久久久| www.亚洲成人色| 日韩精品免费91aa| 亚洲天堂av电影| 五月天色图婷婷亚洲| 素人阁久久久久精品人妻| 亚洲人的午夜影院| 亚洲五月婷婷激情图片| 成人人妻视频一区二区| 久草青青草原在线视频| 国产一区二区高清在线播放| 欧美一区二区三区成人免费看| 中文字幕成人资源网站| 美女在线观看亚洲一区| 久久久久久人妻无码| 色哟哟视频在线一区| 91老司机免费福利| 自拍偷拍亚洲欧美另类| 九九re精品免费视频| 亚洲自拍偷拍色图区| 日韩高清av一区| 视频一区视频二区三区| 日韩欧美三级一区二区在线观看| 色哟哟视频在线观看国产| 国产99久久久国产精品成人免费| 欧美不卡高清一区二区三区| 天天干天天插天天操天天日 | 99久久国语露脸精彩对白| 国产av一区二区三区天美| 久久久97精品国产| 肥臀熟女一区二区三区肥女人| 久久免费视频精彩视频| 国产91在线播放精品| www.成人国产精品| 日韩av在线不卡网站| 青青草成人免费电影| 亚洲av综合久久伊人| 精品欧美乱子伦一区二区三区| 日韩欧美xxxx大片| 国产aⅴ爽av久久久久成| 人妻丰满一区二区三区| sepapa自拍偷拍| 色婷婷国产熟妇人妻露脸| 欧美日韩人妻久久精品| 91亚洲精品成人在线| 少妇人妻视频在线观看| 中文字幕一区二区不卡顿| 91免费av在线观看| 日韩欧美爱爱视频免费观看| 91久久久久久久久久粉嫩| 欧美日韩精品亚洲欧美| 91麻豆免费国产在线| 青娱乐国产视频盛| 少妇高潮一区二区三区99欧美| 91精品久久久久久久久不卡网站 | 欧美区 日韩区 国产区| 国产成人免费精品视频大全| 成人午夜激情福利片| 久久精品色婷婷国产网站| 国产又粗又硬又长又爽视频| 亚洲aⅴ欧美综合一区二区三区| 97精品国产自在在线观看蜜臀| 久久国产经典三级av| 亚洲欧美日韩国产另类专区| 香蕉在线蕉久在线| 精品乱码一区二区三四五六区| 人妻熟 中文字幕| 久久久久久久夜精品精品| av青青草原在线观看| 中文字幕亚洲欧美国产| 五月婷婷激情四射综合网| 美女18禁久久久久麻豆| 五月婷婷51视频免费| 欧美中文字幕久久久| 精品久久精品久久久久| 日韩中文字幕在线网站| 日韩国产91综合精品| 欧美日韩国产一区二区三区免费| 久久久久久添逼视频| 亚洲欧美日韩国产另类专区| 蜜桃av 1区二区| 国产精品99久久电影| huangse网站在线观看| www日本不卡一二三区| 熟女少妇视频一区二区在线| 亚洲国产精品五月天久久久| 91成人国产精品视频| 国产亚洲精久久久久久无码色戒| 久久久久久少妇被弄高潮| 久久国产经典三级av| 一本色道久久亚洲综合精品蜜桃| 欧美一级黄片视频看看| 最新精品成人在线| 久久激情毛片大放送| 99爱99久久久久久久久久| 乱女乱妇熟女熟妇综合站| 日韩av在线天堂| 日韩欧美 国产精品| 久久伊人精品青青草原| 欧美视频 亚洲视频| 国产中文字幕在线91| 久久精品人妻中文字幕一区| 91国产手机视频在线观看| 国内精品久久久久久久久久清纯 | 狠狠久久综合丁香777米奇| 久久久久国产精品夜夜夜| 9久热这里有国产精品| 久久人妻少妇嫩草av蜜桃动态图| 日本vs欧美一区二区三区| 三级亚洲天堂亚洲天堂| 国产熟女高潮av77777| 久久久免费精品少妇| 国语黄色淫秽录像带|