站長資訊網
        最全最豐富的資訊網站

        Mysqli的基本操作-CURD的學習開發總結

        PHP自5.5起,已經完全廢除mysql擴展,官方推薦使用MySQLI或PDO來代替。這篇文章主要講mysqli的一些基本操作。使用mysqli有兩個風格的寫法,對象式或函數式,下面我們只展示函數式的寫法風格。

        數據庫連接

        首先肯定需要連接數據庫。連接數據前,我們需要準備的一般有數據庫的賬號、密碼、端口號、數據庫名。

        因為網絡原因或其他原因經常會有連接不上數據庫的情況,所以,我們需要做連接失敗的處理。

        <?php // 數據庫連接 $mysqli = mysqli_connect(    'localhost',    'root',    '',    'test' );  if (mysqli_connect_errno()) {    throw new Exception('databases connect error:'        .mysqli_connect_error()); }  // ...一些數據庫操作 // 關閉數據庫資源 mysqli_close($mysqli);

        設置字符集

        設置字符集使用mysqli_set_charset();

        字符集目前我們大都使用utf8mb4,因為他支持4個字節長度的字符。他支持一些emoji表情字符。當然如果你不需要支持4字節字符的話可以選擇使用utf8,因為他比較剩空間。

        mysqli_set_chartset($mysqli, 'utf8mb4');

        重新選擇數據庫

        數據庫連接后,還可以重新選擇數據庫。

        mysqli_select_db($mysqli, '數據庫名');

        CURD操作

        mysqli_query():對數據庫執行一次操作,DDL、DQL 、DML都支持。

        mysqli_affected_rows():獲取影響記錄行數。

        新增數據操作

        mysqli_query($mysqli,    "INSERT INTO users(username, age, sex)                VALUES('周杰倫', 35, '男'),                       ('謝霆鋒', 35, '男')" );  if (mysqli_affected_rows($mysqli) <= 0) {    throw new Exception('databases insert error:'        . mysqli_error($mysqli)); }

        修改數據操作

        這里面有一個注意點,mysqli_affected_rows返回的值為0的情況。它更新的信息與上次完全一樣,這個情況很普遍。比如說在修改的時候,連續點擊了多次修改按鈕。但并不能說明程序代碼有問題。所以,和新增不一樣的是,返回0也應該是成功狀態。

        mysqli_query($mysqli,    "UPDATE users SET age=40 WHERE user_id = 1" );  if (mysqli_affected_rows($mysqli) < 0) {    throw new Exception('databases update error:'        . mysqli_error($mysqli)); }

        刪除數據操作

        注意:修改和刪除操作必須加where條件,不然將會修改整個表的數據,后果不堪設想(刪庫跑路o(╯□╰)o)。

        mysqli_query($mysqli,    "Delete FROM users  WHERE user_id = 100" );  if (mysqli_affected_rows($mysqli) <= 0) {    throw new Exception('databases delete error:'        . mysqli_error($mysqli)); }

        查詢操作

        當mysqli_query執行的是一條查詢語句時,該函數會返回mysqli_result結果集。

        mysqli_fetch_all()從結果集中獲取全部數據。該函數第二個參數可以指定返回數據的格式。分別為:

        • MYSQLI_NUM:返回索引數組

        • MYSQLI_ASSOC:返回關聯數組

        • MYSQLI_BOTH:既有索引數組也有關聯數組

        另外需要注意,對結果集的操作結束后,記得銷毀結果集資源。

        // 數據庫連接 $mysqli = mysqli_connect(    'localhost',    'root',    '',    'test' ); if (mysqli_connect_errno()) {    throw new Exception('databases connect error:'        .mysqli_connect_error()); } mysqli_set_charset($mysqli, 'utf8mb4'); $result = mysqli_query($mysqli,    "SELECT * FROM users" ); if (mysqli_affected_rows($mysqli) < 0) {    throw new Exception('databases select error:'        . mysqli_error($mysqli)); } $users = mysqli_fetch_all($result, MYSQLI_ASSOC); // 銷毀結果集資源 mysqli_free_result($result); // 關閉數據庫資源 mysqli_close($mysqli);

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产成人精品免费视频大全麻豆| 国产精品91视频| AV无码精品一区二区三区| 久久久久一级精品亚洲国产成人综合AV区 | 精品一卡2卡三卡4卡免费视频| 久久91精品综合国产首页| 精品国产第1页| 久久国产精品无码一区二区三区| 国产一区二区三精品久久久无广告 | CAOPORM国产精品视频免费 | 国产69精品久久久久99| 国内精品伊人久久久久av一坑| 日韩美女18网站久久精品| 国产精品无码一区二区在线| 久久精品国产亚洲一区二区| 精品无码一区二区三区爱欲九九| 亚洲精品永久在线观看| 日本精品一区二区三区在线视频| 精品福利一区二区三区精品国产第一国产综合精品 | 无码精品人妻一区二区三区免费| 国产麻豆精品入口在线观看 | www.亚洲精品.com| 99久久精品日本一区二区免费| 欧美肥屁VIDEOSSEX精品| 亚洲综合无码精品一区二区三区| 日韩亚洲精品福利 | 人妻偷人精品成人AV| 久久精品夜色噜噜亚洲A∨| 黑巨人与欧美精品一区| 精品国产高清在线拍| 国产欧美日韩综合精品一区二区三区 | 国产精品亚洲视频| 色播精品免费小视频| 青青草原综合久久大伊人精品| 欧美亚洲精品在线| 日本精品久久久久中文字幕8| 久久99精品久久久久久| 777欧美午夜精品影院| 国产成人精品无人区一区| 国产精品亚洲二区在线观看| 国产农村妇女毛片精品久久|