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

        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,因為他比較??臻g。

        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號
        主站蜘蛛池模板: 久久精品国产一区| 久久夜色撩人精品国产小说| 精品国产香蕉伊思人在线在线亚洲一区二区 | 久久国产热精品波多野结衣AV| 国产精品性爱| 久久91精品久久91综合| 久久99精品久久久久久动态图 | 国产欧美日韩综合精品一区二区三区 | 亚洲欧美日韩久久精品| 国产亚洲精品影视在线产品| 精品久久久久久国产| 久久国产精品无码HDAV| 亚洲国产精品成人AV无码久久综合影院| 最新国产の精品合集| 久久99精品综合国产首页| 99久久99久久精品免费看蜜桃| 亚洲AV成人精品一区二区三区 | 国产成人精品无码播放| 久久久久久久久久久免费精品| 91亚洲国产成人久久精品| 精品乱人伦一区二区三区| 99久久久精品免费观看国产| 久久丫精品国产亚洲av不卡 | 亚洲成网777777国产精品| 热综合一本伊人久久精品| 精品欧美小视频在线观看| 国产午夜精品久久久久九九| 91精品国产成人网在线观看| 国产精品网址你懂的| 国产精品网站在线观看| 精品三级在线观看| 国产一区二区精品久久| 四虎影视国产精品永久在线 | 久久亚洲日韩精品一区二区三区| 亚洲欧美日韩国产精品一区二区| 合区精品久久久中文字幕一区| 人妻VA精品VA欧美VA| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲精品无码av天堂| 夜夜高潮夜夜爽国产伦精品| 亚洲精品专区|