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

2020-07-16 10:05:51
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);

以上就是Mysqli基本操作,個人實際學習開發總結,歡迎討論!

以上就是Mysqli的基本操作-CURD的學習開發總結的詳細內容,更多請關注TW511.COM其它相關文章!