午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > PHP如何初始化PDO及原始SQL語句操作

PHP如何初始化PDO及原始SQL語句操作

熱門標簽:銀行信貸電話機器人 上海400客服電話怎么申請 滄州電銷外呼系統(tǒng)價格 凱立德地鐵站地圖標注 合肥ai電銷機器人費用 溫州外呼系統(tǒng)招商 天津電銷外呼系統(tǒng)違法嗎 手機外呼系統(tǒng)什么原理 400電話個人能不能辦理

PDO 實例

首先來看看一個 PDO 實例是如何初始化的。

$dns = 'mysql:host=localhost;dbname=blog_test;port=3306;charset=utf8';
$pdo = new PDO($dns, 'root', '');

普通情況下,我們直接實例化的時候傳遞構(gòu)造參數(shù)就可以獲得一個 PDO 對象。這樣,我們就和數(shù)據(jù)庫建立了連接。如果連接失敗,也就是參數(shù)寫得有問題的時候,在實例化時直接就會報異常。

PDO 對象的參數(shù)包括 DNS 信息、用戶名、密碼,另外還有一個參數(shù)就是可以設(shè)置 PDO 連接的一些屬性,我們將在后面看到它的使用。

dns 參數(shù)

PDO 構(gòu)造參數(shù)的第一個參數(shù)是一個 DNS 字符串。在這個字符串中使用分號 ; 分隔不同的參數(shù)內(nèi)容。它里面可以定義的內(nèi)容包括:

  • DSN prefix,也就是我們要連接的數(shù)據(jù)庫類型,MySQL 數(shù)據(jù)庫一般都是直接使用 mysql: 這樣來定義即可。
  • host,連接的地址,在這里我們連接的是本地數(shù)據(jù)庫 localhost
  • port,端口號,MySQL 默認為 3306 ,可以不寫
  • dbname,要連接的數(shù)據(jù)庫名稱
  • unix_socket,可以指定 MySQL 的 Unix Socket 文件
  • charset,連接的字符集

我們可以通過一個函數(shù)來查看當前 PHP 環(huán)境中所支持的數(shù)據(jù)庫擴展都有哪些:

print_r(PDO::getAvailableDrivers());exit;
// Array
// (
//     [0] => dblib
//     [1] => mysql
//     [2] => odbc
//     [3] => pgsql
//     [4] => sqlite
// )

PDO 對象屬性

PDO 構(gòu)造參數(shù)的最后一個參數(shù)可以設(shè)置連接的一些屬性,如:

$pdo = new PDO($dns, 'root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
showPdoAttribute($pdo);
// ……
// PDO::ATTR_ERRMODE: 2
// ……

showPdoAttribute() 方法是我們自己封裝的一個展示所有連接屬性的函數(shù)。

// 顯示pdo連接屬性
function showPdoAttribute($pdo){
    $attributes = array(
        "DRIVER_NAME", "AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
        "ORACLE_NULLS", "PERSISTENT", "SERVER_INFO", "SERVER_VERSION"
    );
    
    foreach ($attributes as $val) {
        echo "PDO::ATTR_$val: ";
        echo $pdo->getAttribute(constant("PDO::ATTR_$val")) . "\n";
    }
}

在這個函數(shù)中,我們使用 PDO 實例的 getAttribute() 方法來獲取相應的屬性值。在沒有設(shè)置 PDO::ATTR_ERRMODE 時,它的默認值為 0 ,也就是 PDO::ERRMODE_SILENT 常量所對應的值。在上述代碼中,我們將它設(shè)置為了 PDO::ERRMODE_EXCEPTION ,查看屬性輸出的結(jié)果就變成了 2 。

除了在構(gòu)造函數(shù)的參數(shù)中設(shè)置屬性外,我們也可以使用 PDO 實例的 setAttribute() 方法來設(shè)置 PDO 的屬性值。

pdo2 = new PDO($dns, 'root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

echo $pdo2->getAttribute(PDO::ATTR_DEFAULT_FETCH_MODE), PHP_EOL;
// 4

// 設(shè)置屬性
$pdo2->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
echo $pdo2->getAttribute(PDO::ATTR_DEFAULT_FETCH_MODE), PHP_EOL;
// 2

在這段代碼中,我們設(shè)置 PDO::ATTR_DEFAULT_FETCH_MODE 為 PDO::FETCH_ASSOC 。這樣,在使用這個 $pdo2 的連接進行查詢時,輸出的結(jié)果都會是以數(shù)組鍵值對形式返回的內(nèi)容。我們馬上就進入查詢方面相關(guān)函數(shù)的學習。

查詢語句

大多數(shù)情況下,使用 PDO 我們都會用它的預處理能力來編寫 SQL 語句,一來是性能更好,二來是更加安全。不過我們今天先不講預處理方面的問題,還是以最原始的直接操作 SQL 語句的方式學習相關(guān)的一些函數(shù)。

普通查詢及遍歷

// 普通查詢 - 遍歷1
$stmt = $pdo->query('select * from zyblog_test_user limit 5');
foreach ($stmt as $row) {
    var_dump($row);
}

// array(8) {
//     ["id"]=>
//     string(3) "204"
//     [0]=>
//     string(3) "204"
//     ["username"]=>
//     string(5) "three"
//     [1]=>
//     string(5) "three"
//     ["password"]=>
//     string(6) "123123"
//     [2]=>
//     string(6) "123123"
//     ["salt"]=>
//     string(3) "ccc"
//     [3]=>
//     string(3) "ccc"
//   }
//   ……

// 普通查詢 - 遍歷2
$stmt = $pdo->query('select * from zyblog_test_user limit 5');

while ($row = $stmt->fetch()) {
    var_dump($row);
}

// array(8) {
//     ["id"]=>
//     string(3) "204"
//     [0]=>
//     string(3) "204"
//     ["username"]=>
//     string(5) "three"
//     [1]=>
//     string(5) "three"
//     ["password"]=>
//     string(6) "123123"
//     [2]=>
//     string(6) "123123"
//     ["salt"]=>
//     string(3) "ccc"
//     [3]=>
//     string(3) "ccc"
//   }
//   ……

PDO 實例的 query() 方法就是執(zhí)行一條查詢語句,并返回一個 PDOStatement 對象。通過遍歷這個對象,就可以獲得查詢出來的數(shù)據(jù)結(jié)果集。

在代碼中,我們使用了兩種方式來遍歷,其實它們的效果都是一樣的。在這里,我們要關(guān)注的是返回的數(shù)據(jù)格式。可以看出,數(shù)據(jù)是以數(shù)組格式返回的,并且是以兩種形式,一個是數(shù)據(jù)庫定義的鍵名,一個是以下標形式。

查詢結(jié)果集(數(shù)組、對象)

其實大部分情況下,我們只需要數(shù)據(jù)庫鍵名的那種鍵值對形式的數(shù)據(jù)就可以了。這個有兩種方式,一是直接使用上文中我們定義好默認 PDO::ATTR_DEFAULT_FETCH_MODE 屬性的 $pdo2 連接,另一個就是在查詢的時候為 query() 方法指定屬性。

$stmt = $pdo2->query('select * from zyblog_test_user limit 5');
foreach ($stmt as $row) {
    var_dump($row);
}
// array(4) {
//     ["id"]=>
//     string(1) "5"
//     ["username"]=>
//     string(3) "two"
//     ["password"]=>
//     string(6) "123123"
//     ["salt"]=>
//     string(3) "bbb"
//   }
//   ……

$stmt = $pdo->query('select * from zyblog_test_user limit 5', PDO::FETCH_ASSOC);
foreach ($stmt as $row) {
    var_dump($row);
}
// array(4) {
//     ["id"]=>
//     string(1) "5"
//     ["username"]=>
//     string(3) "two"
//     ["password"]=>
//     string(6) "123123"
//     ["salt"]=>
//     string(3) "bbb"
//   }
//   ……

當然,我們也可以直接讓數(shù)據(jù)返回成對象的格式,同樣的也是使用預定義的常量來指定 query() 或者 PDO 實例連接的屬性就可以了。

$stmt = $pdo->query('select * from zyblog_test_user limit 5', PDO::FETCH_OBJ);
foreach ($stmt as $row) {
    var_dump($row);
}
// object(stdClass)#4 (4) {
//     ["id"]=>
//     string(1) "5"
//     ["username"]=>
//     string(3) "two"
//     ["password"]=>
//     string(6) "123123"
//     ["salt"]=>
//     string(3) "bbb"
//   }
//   ……

查詢結(jié)果集(類)

上面返回對象形式的結(jié)果集中的對象是 stdClass 類型,也就是 PHP 的默認類類型。那么我們是否可以自己定義一個類,然后在查詢完成后直接生成它的結(jié)果集呢?就是像是 ORM 框架一樣,完成數(shù)據(jù)到對象的映射。既然這么說了,那當然是可以的啦,直接看代碼。

class user
{
    public $id;
    public $username;
    public $password;
    public $salt;

    public function __construct()
    {
        echo 'func_num_args: ' . func_num_args(), PHP_EOL;
        echo 'func_get_args: ';
        var_dump(func_get_args());
    }
}

class user2
{

}
// 返回指定對象
$u = new user;
$stmt = $pdo->query('select * from zyblog_test_user limit 5', PDO::FETCH_INTO, $u);
foreach ($stmt as $row) {
    var_dump($row);
}
// object(user)#3 (4) {
//     ["id"]=>
//     string(1) "5"
//     ["username"]=>
//     string(3) "two"
//     ["password"]=>
//     string(6) "123123"
//     ["salt"]=>
//     string(3) "bbb"
//   }
//   ……

// 空類測試
$u = new user2;
$stmt = $pdo->query('select * from zyblog_test_user limit 5', PDO::FETCH_INTO, $u);
foreach ($stmt as $row) {
    var_dump($row);
}

// object(user2)#2 (4) {
//     ["id"]=>
//     string(1) "5"
//     ["username"]=>
//     string(3) "two"
//     ["password"]=>
//     string(6) "123123"
//     ["salt"]=>
//     string(3) "bbb"
//   }
//   ……

在這段代碼中,我們定義了兩個類,user 類有完整的和數(shù)據(jù)庫字段對應的屬性,還定義了一個構(gòu)造方法(后面會用到)。而 user2 類則是一個空的類。通過測試結(jié)果來看,類的屬性對于 PDO 來說并不重要。它會默認創(chuàng)建數(shù)據(jù)庫查詢到的字段屬性,并將它賦值給對象。那么假如我們定義了一個 const 常量屬性并給予相同的字段名稱呢?大家可以自己嘗試一下。

對于 user 和 user2 來說,我們將它實例化了并傳遞給了 query() ,并且指定了結(jié)果集格式為 PDO::FETCH_INTO ,這樣就實現(xiàn)了獲取對象結(jié)果集的能力。但是 PDO 遠比你想象的強大,我們還可以直接用類模板來獲取查詢結(jié)果集。

// 根據(jù)類返回指定對象
$stmt = $pdo->query('select * from zyblog_test_user limit 5', PDO::FETCH_CLASS, 'user', ['x1', 'x2']);
foreach ($stmt as $row) {
    var_dump($row);
}
// func_num_args: 2
// func_get_args: array(2) {
//   [0]=>
//   string(2) "x1"
//   [1]=>
//   string(2) "x2"
// }
// object(user)#4 (4) {
//   ["id"]=>
//   string(1) "5"
//   ["username"]=>
//   string(3) "two"
//   ["password"]=>
//   string(6) "123123"
//   ["salt"]=>
//   string(3) "bbb"
// }
// ……

query() 方法直接使用查詢結(jié)果集模式為 PDO::FETCH_CLASS ,并傳遞一個類模板的名稱,PDO 就會在當前代碼中查找有沒有對應的類模板,獲得的每個結(jié)果都會實例化一次。在這里,我們又多了一個參數(shù),最后一個參數(shù)是一個數(shù)組,并且給了兩個元素。估計有不少小伙伴已經(jīng)看出來了,這個參數(shù)是傳遞給類的構(gòu)造方法的。記住,使用這個模式,每個元素都會實例化一次,結(jié)果集中的每個元素都是新創(chuàng)建的類(object(user2)#3,#號后面的數(shù)字是不同的對象句柄id),而 PDO::FETCH_INTO 則是以引用的形式為每個元素賦值(object(user2)#3,#號后面的數(shù)字是相同的對象句柄id)。也就是說,我們使用 PDO::FETCH_INTO 模式的時候,修改一個元素的值,其它的元素也會跟著改變,如果使用一個數(shù)組去記錄遍歷的元素值,最后數(shù)組的結(jié)果也會是相同的最后一個元素的內(nèi)容。

$stmt = $pdo->query('select * from zyblog_test_user limit 5', PDO::FETCH_INTO, $u);
$resArr = [];
foreach ($stmt as $row) {
    var_dump($row);
    $resArr[] = $row;
}
$resArr[0]->id = 55555;
print_r($resArr);
// Array
// (
//     [0] => user2 Object
//         (
//             [id] => 55555
//             [username] => two
//             [password] => 123123
//             [salt] => bbb
//         )

//     [1] => user2 Object
//         (
//             [id] => 55555
//             [username] => two
//             [password] => 123123
//             [salt] => bbb
//         )

//     [2] => user2 Object
//         (
//             [id] => 55555
//             [username] => two
//             [password] => 123123
//             [salt] => bbb
//         )

//     [3] => user2 Object
//         (
//             [id] => 55555
//             [username] => two
//             [password] => 123123
//             [salt] => bbb
//         )

//     [4] => user2 Object
//         (
//             [id] => 55555
//             [username] => two
//             [password] => 123123
//             [salt] => bbb
//         )

// )

如何解決這個問題呢?最簡單的方式就是在數(shù)組賦值的時候加個 clone 關(guān)鍵字唄!

查詢結(jié)果集(指定字段)

最后輕松一點,我們看下 query() 方法還可以指定查詢的某一個字段。

// 只返回第幾個字段
$stmt = $pdo->query('select * from zyblog_test_user limit 5', PDO::FETCH_COLUMN, 2);
foreach ($stmt as $row) {
    var_dump($row);
}
// string(32) "bbff8283d0f90625015256b742b0e694"
// string(6) "123123"
// string(6) "123123"
// string(6) "123123"
// string(6) "123123"

增、刪、改操作

除了查詢之外的操作,我們也可以使用 exec() 方法來執(zhí)行其他一些相應的 SQL 語句。

增加操作

$count = $pdo->exec("insert into zyblog_test_user(`username`, `password`, `salt`) value('akk', 'bkk', 'ckk')");
$id = $pdo->lastInsertId();

var_dump($count); // int(1)
var_dump($id); // string(3) "205"

exec() 返回的是影響的行數(shù),如果我們執(zhí)行這一條 SQL ,返回的就是成功添加了一行數(shù)據(jù)。如果要獲得新增加數(shù)據(jù)的 id ,就要使用 lastInserId() 方法來獲取。

$count = $pdo->exec("insert into zyblog_test_user(`username`, `password`, `salt`) value('akk', 'bkk', 'ckk', 'dkk')");
// Fatal error: Uncaught PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1

執(zhí)行錯誤的 SQL 語句,就像根據(jù) PDO::ATTR_ERRMODE 屬性的設(shè)置來返回錯誤信息。我們在最上面的實例化 PDO 代碼中指定了錯誤形式是異常處理模式,所以這里直接就會報 PDOException 異常。

修改操作

// 正常更新
$count = $pdo->exec("update zyblog_test_user set `username`='aakk' where id='{$id}'");

var_dump($count); // int(1)

// 數(shù)據(jù)不變更新
$count = $pdo->exec("update zyblog_test_user set `username`='aakk' where id='{$id}'");
var_dump($count); // int(0)

// 條件錯誤更新
$count = $pdo->exec("update zyblog_test_user set `username`='aakk' where id='123123123123'");
var_dump($count); // int(0)
echo '===============', PHP_EOL;

同樣的,在執(zhí)行更新操作的時候,exec() 返回的也是受影響的行數(shù)。很多小伙伴會以這個進行判斷是否更新成功,但如果數(shù)據(jù)沒有修改,那么它返回的將是 0 ,SQL 語句的執(zhí)行是沒有問題的,邏輯上其實也沒有問題。比如我們在后臺打開了某條數(shù)據(jù)查看,然后并不想更新任何內(nèi)容就直接點了提交,這時候不應該出現(xiàn)更新失敗的提示。也就是說,在前端判斷更新操作的時候,需要判斷字段是否都有改變,如果沒有改變的話那么不應該提示更新失敗。這一點是業(yè)務(wù)邏輯上的考慮問題,如果你認為這樣也是更新失敗的話,那么這么報錯也沒有問題,一切以業(yè)務(wù)形式為主。

刪除操作

$count = $pdo->exec("delete from zyblog_test_user where id = '{$id}'");
var_dump($count); // int(1)

// 條件錯誤刪除
$count = $pdo->exec("delete from zyblog_test_user where id = '5555555555'");
var_dump($count); // int(0)

刪除操作需要注意的問題和更新操作是一樣的,那就是同樣的 exec() 只是返回影響行數(shù)的問題,不過相對于更新操作來說,沒有受影響的行數(shù)那肯定是刪除失敗的,沒有數(shù)據(jù)被刪除。同樣的,這個失敗的提示也請根據(jù)業(yè)務(wù)情況來具體分析。

總結(jié)

不學不知道,一學嚇一跳吧,簡簡單的一個 PDO 的創(chuàng)建和語句執(zhí)行竟然有這么多的內(nèi)容。對于我們的日常開發(fā)來說,掌握這些原理能夠避免很多莫名其妙的問題,比如上面 exec() 只是返回影響行數(shù)在業(yè)務(wù)開發(fā)中如何判斷操作是否成功的問題就很典型。好了,這只是第一篇,后面的學習不要落下了哦!

測試代碼

以上就是PHP如何初始化PDO及原始SQL語句操作的詳細內(nèi)容,更多關(guān)于PHP 初始化PDO及原始SQL語句操作的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • PHP PDO預處理語句及事務(wù)的使用
  • PHP中PDO關(guān)閉連接的方法問題
  • PHP使用PDO 連接與連接管理操作實例分析
  • php+pdo實現(xiàn)的購物車類完整示例
  • PHP使用PDO實現(xiàn)mysql防注入功能詳解
  • PHP PDO和消息隊列的個人理解與應用實例分析
  • php pdo連接數(shù)據(jù)庫操作示例
  • PHP連接MySQL數(shù)據(jù)庫的三種方式實例分析【mysql、mysqli、pdo】
  • PHP使用PDO創(chuàng)建MySQL數(shù)據(jù)庫、表及插入多條數(shù)據(jù)操作示例
  • php如何用PDO操作大數(shù)據(jù)對象

標簽:赤峰 七臺河 溫州 酒泉 白城 洛陽 金華 怒江

巨人網(wǎng)絡(luò)通訊聲明:本文標題《PHP如何初始化PDO及原始SQL語句操作》,本文關(guān)鍵詞  PHP,如何,初始化,PDO,及,原始,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP如何初始化PDO及原始SQL語句操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP如何初始化PDO及原始SQL語句操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品小视频在线观看| 午夜精品一区二区三区在线视| 久久色精品视频| 国产成人久久久精品一区| 国产精品久久精品国产 | 国产精品久久亚洲7777| 中文字幕在线乱| 三上悠亚av一区二区三区| 新91视频在线观看| 五月天综合激情| 天天爱天天干天天操| 不卡影院免费观看| 亚洲六月丁香色婷婷综合久久 | 经典三级在线一区| 一区在线观看免费| 制服丝袜国产精品| 首页综合国产亚洲丝袜| 国产日韩欧美在线视频观看| 久久综合国产精品台湾中文娱乐网| 国产91在线播放| 欧美大香线蕉线伊人久久国产精品 | www.com操| 久久精品国产亚洲av麻豆| 男人的天堂一区二区| 亚洲 欧美 激情 另类| 2021国产精品久久精品| 色域天天综合网| 亚洲人成五月天| 国产欧美日韩高清| 国产一二三四区在线观看| 波多野结衣中文字幕在线播放| 麻豆亚洲av成人无码久久精品| 在线观看毛片av| 国产麻豆午夜三级精品| 亚洲一区二区欧美激情| 亚洲第一网中文字幕| 午夜精品一区二区三区在线播放| 蜜桃传媒视频麻豆一区| 黄色免费网址大全| 最新一区二区三区| 丰满肥臀噗嗤啊x99av| 久久伊99综合婷婷久久伊| 色久综合一二码| 日韩视频永久免费观看| 成人av中文| 国产精品宾馆在线精品酒店| 性欧美13一14内谢| 国产又色又爽又黄又免费| 不卡大黄网站免费看| 色噜噜狠狠成人网p站| 两个人的视频www国产精品| 国产一区免费在线| 精品www久久久久奶水| 亚洲一二三在线观看| www男人的天堂| 久久综合成人精品亚洲另类欧美| 欧美网站大全在线观看| 久久久久久网站| 先锋在线资源一区二区三区| 自拍偷拍激情视频| 日本丰满少妇做爰爽爽| av一二三不卡影片| 欧美精品国产精品| 欧美在线视频在线播放完整版免费观看 | 亚洲精品国产精品自产a区红杏吧| 国产精品成人一区二区三区吃奶| 香蕉视频免费版| 在线免费观看成年人视频| 国产又黄又粗又长| 国产亚洲精品久| 免费不卡在线视频| 国产精品无码专区av在线播放| 日韩欧美国产精品| 男人操女人的视频网站| 最近2019年手机中文字幕| 国产sm精品调教视频网站| 艹b视频在线观看| 少妇高清精品毛片在线视频| 综合五月激情网| 丝瓜av网站精品一区二区| 艳妇臀荡乳欲伦亚洲一区| 国产亚洲成精品久久| 国产伦视频一区二区三区| 亚洲娇小娇小娇小| 国产精品免费精品一区| 成人爱爱电影网址| 欧美久久久一区| 日韩美女视频免费看| 日韩人妻无码精品久久久不卡| 91免费在线看片| 久久一区亚洲| 懂色av影视一区二区三区| 久久高清视频免费| 一本一道久久a久久精品综合| 大黑人交xxx极品hd| 国产高潮流白浆喷水视频| 中文字幕在线观看不卡| 国产香蕉97碰碰久久人人| 国产综合欧美在线看| 色噜噜狠狠狠综合曰曰曰88av| 奇米色777欧美一区二区| 久久综合伊人| 婷婷成人激情在线网| 欧美精品videofree1080p| 中文字幕精品在线播放| 香蕉成人在线视频| 精品在线播放午夜| 欧美日韩国产乱码电影| 国产精品女视频| 无码少妇一区二区三区芒果| 亚洲免费黄色网址| 久久精品免视看| 亚洲天堂第一页| 日韩av不卡在线播放| 丰腴饱满的极品熟妇| 视频在线观看一区二区三区| 色久优优欧美色久优优| 国产精品高潮在线| 狠狠躁狠狠躁视频专区| 中文永久免费观看| 日韩毛片高清在线播放| 欧美精品中文字幕一区| 亚洲熟妇无码av在线播放| 精品无码人妻一区二区三| 国产成人综合自拍| 亚洲成人黄色网| 久久66热这里只有精品| 一本色道久久综合亚洲精品图片| 日韩专区一卡二卡| 欧美日韩国产在线播放网站| 欧美色图片你懂的| 无码精品在线观看| 亚洲色图欧美视频| 在线免费不卡电影| 国产精品一区二区三区久久| 视频二区在线播放| av中文在线观看| 亚洲va欧美va国产va天堂影院| 性欧美激情精品| 国产精品97在线| 91麻豆精品在线| 亚洲精品国产a| 精品1区2区在线观看| 国产女同互慰高潮91漫画| 日本一不卡视频| 一片黄亚洲嫩模| 98精品在线视频| 国产在线观看福利| 奇米影视首页 狠狠色丁香婷婷久久综合| 亚洲精品自产拍| 国产精品十八以下禁看| 污污视频网站在线| 四虎免费在线观看| 欧美精品一二三四| 精品国产一区二区三区免费| 影音先锋制服丝袜| 高清视频一区二区| 久久综合久色欧美综合狠狠| 黄色一级视频免费观看| 亚洲高清精品视频| 日本精品视频一区二区三区| 国产一区二区香蕉| 免费a v网站| 激情久久五月天| 亚洲精品国产精品国自产观看浪潮| 视频在线99| 国产精品第九页| 亚洲色图欧美在线| 国产成人精品日本亚洲专区61| 免费看的av网站| 日本成人在线不卡视频| 亚洲第一综合天堂另类专| 亚洲一卡二卡三卡| 久久精品五月婷婷| 91免费视频网站在线观看| 中文在线最新版天堂| 精品久久久中文| 欧美日韩第一页| 亚洲天堂视频在线观看| 亚洲风情在线资源站| 亚洲第一第二区| 无码熟妇人妻av| 无码人妻精品一区二区三区夜夜嗨| 久久亚洲综合色| 亚洲高清免费在线| 久久成人精品无人区| aa级大片欧美| 不卡av电影院| 五月天激情视频在线观看| 涩涩视频免费看| 欧美成人在线直播| 伊人久久99| 国产一级片av| 日本高清不卡视频| 久久99精品国产一区二区三区| 人妻久久一区二区| 国产一区二区电影| 性感美女福利视频| 国产无遮挡又黄又爽| 不卡的av中文字幕| 国产一区在线免费观看| 在线观看欧美一区| 少妇无套内谢久久久久| 色八戒一区二区三区| 激情小说网站亚洲综合网| 九九热精彩视频| 亚洲一区中文日韩| 3d动漫精品啪啪一区二区三区免费 | 亚洲欧美一区二区三区极速播放| 国产精品久久久久久久久久| 欧美成人午夜精品免费| 97精品视频在线观看自产线路二| 欧美激情女人20p| 午夜性福利视频| 成人免费视频caoporn| 欧美福利在线观看| 成年人看片网站| 成人天堂资源www在线| 色综合久久悠悠| 特级特黄刘亦菲aaa级| 成人久久久精品乱码一区二区三区| 欧美日韩福利电影| 毛茸茸free性熟hd| 99精品视频在线观看| 2019最新中文字幕| 黑人巨大精品欧美| 国产精品蜜臀av| 成人精品在线视频| 亚洲国产美女视频| 亚洲综合视频在线观看| 国产日韩欧美亚洲一区| 国产精品一区二区三区四| 色噜噜狠狠色综合欧洲selulu| 日韩精品一区二区三区色偷偷| 最新在线中文字幕| 日韩欧美一级精品久久| 九九爱精品视频| 玖玖视频精品| 中文字幕在线看视频国产欧美| www.国产视频.com| 风间由美性色一区二区三区| 97人人模人人爽人人喊中文字| 亚洲自拍偷拍一区二区| 91年精品国产| 1区2区3区精品视频| 国产精一区二区三区| 日韩一级黄色大片| 97超碰国产精品| 五月婷婷深深爱| 最近2019年中文视频免费在线观看 | 中国一区二区三区| 亚洲成熟女性毛茸茸| 亚洲男人天堂手机在线| 亚欧美在线观看| jiyouzz国产精品久久| 国产精品99导航| 青草草在线视频| 91精品1区2区| 日本国产中文字幕| 人人狠狠综合久久亚洲| 色综合久综合久久综合久鬼88| 成年人在线观看av| 亚洲精品国产成人久久av盗摄 | 久久久久久久久久97| 婷婷久久综合九色综合绿巨人| 四虎一区二区| 日韩一级片免费在线观看| 色老头一区二区三区在线观看| 久久久久亚洲无码| 综合亚洲深深色噜噜狠狠网站| 精品免费一区二区三区蜜桃| 中文字幕精品一区二区精| 亚洲精品v欧美精品v日韩精品| 中文字幕在线亚洲三区| 国产精品宾馆在线精品酒店| 国产精品一线二线三线| 精品国产青草久久久久96| 精品国精品自拍自在线| 亚洲成人av免费看| 99久久婷婷国产综合精品 | 久久久久久美女| 91视频最新网址| 91久久人澡人人添人人爽欧美| 成人av在线播放观看| 精品在线免费观看| 国产精品h片在线播放| 日本三级一区二区| 欧美成人乱码一区二区三区| 性猛交ⅹ×××乱大交| 国产欧美一区二区在线观看| 国产乱人伦精品一区二区| 国产又粗又大又爽| 中文字幕视频一区二区在线有码| 给我免费观看片在线电影的| 亚洲一区欧美一区| 日韩国产精品毛片| 激情六月婷婷久久| 国产精品爽爽ⅴa在线观看| 一级黄色免费网站| 日韩av在线播放资源| 国产在线观看免费播放| 亚洲激情图片小说视频| 中文字幕一区二区三区乱码| 免费的成人av| 国产成人精品电影久久久| 九一国产在线观看| 日韩久久午夜影院| av无码一区二区三区| 欧美日韩性生活视频| 久久久性生活视频| av福利精品导航| 国产精品一区二区三区不卡| 亚洲国产精品国自产拍久久| 精品自拍视频在线观看| 视频这里只有精品| 日韩欧美一级在线播放| 制服.丝袜.亚洲.中文.综合懂| 伊人开心综合网| www成人免费| 成人福利视频在线| 国产青春久久久国产毛片 | 2018日韩中文字幕| 男女啊啊啊视频| 亚洲欧美国产制服动漫| 美女脱光内衣内裤| 欧美日韩三级一区二区| 亚洲欧美国产中文| 亚洲摸摸操操av| 男人添女人下部视频免费| 成人白浆超碰人人人人| 另类视频在线观看+1080p| 美女精品在线 | 日韩午夜激情免费电影| 色男人天堂av| 亚洲午夜电影网| 3d动漫一区二区三区| 91麻豆国产在线观看| 日本一区二区精品| 久久成人免费日本黄色| 亚洲一区二区三区视频| 亚洲国产精品久久久久久6q | 欧美激情videoshd| 日韩成人一区二区三区| 亚洲色图18p| 色婷婷粉嫩av| 亚洲大尺度美女在线| 成年人的黄色片| 欧美日韩一区久久| 绯色av蜜臀vs少妇| 一本一道波多野结衣一区二区| 啊啊啊国产视频| 樱桃视频在线观看一区| 亚洲 自拍 另类小说综合图区| 久久久久成人黄色影片| 一区二区成人国产精品| av在线综合网| 亚洲va韩国va欧美va精四季| 国产v日产∨综合v精品视频| 久久久一本精品99久久精品66| 久久99国内精品| 国产日韩精品推荐| 精品在线观看视频| 蜜桃日韩视频| 国产成人免费av在线| 免费亚洲精品视频| 国产精品一二一区| 欧美乱偷一区二区三区在线| 国产乱人伦偷精品视频不卡| 久久影院理伦片| 国产福利一区二区三区在线视频| 久久久久久草| 国产成人啪免费观看软件| 欧美深深色噜噜狠狠yyy| 国产一区91精品张津瑜| 欧美激情论坛| 国产91精品入口| 亚洲精品一区二| 91片在线免费观看| 99久久99久久精品| 国产精品久久久久影院| 欧美 丝袜 自拍 制服 另类| 亚洲免费观看高清在线观看| 国产第一页视频| 精品国产福利在线| 国产精品熟女一区二区不卡| 在线观看网站黄不卡| 国产免费一区二区三区最新6| 91精品国产综合久久精品图片| 亚洲综合色一区| 日韩国产高清视频在线| 国产黄在线免费观看| 中国china体内裑精亚洲片| 日韩精品一卡二卡| 欧美黑人极品猛少妇色xxxxx| 免费在线不卡av| 热re99久久精品国产66热| 亚洲精品久久久久avwww潮水| 国产一区二区在线免费视频| 久久一区亚洲| 欧美二级三级| 久久嫩草精品久久久久| 被灌满精子的波多野结衣| 亚洲精品成人悠悠色影视| 天美星空大象mv在线观看视频| 欧美性xxxxxx| a级一a一级在线观看| 亚洲成人激情在线| 国产小视频在线看| 久久久久久久国产| 亚洲欧美高清视频|