iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 13
0
Software Development

新手後端工程師的學習歷程系列 第 13

Day 13 - 實作第一個 CRUD Part I

tags: 2019鐵人賽 PHP CRUD 連結MySQL

前言

今天早上意外喝了半杯豆漿,搞得我上吐下瀉...但是鐵人賽想完賽就是要靠意志力阿!

今天總算要開始來練習連結資料庫跟調用資料庫資料,那最好的練習方式就是製作一個會員登入系統,因為一個會員登入系統就是一個最簡單的 CRUD。至於什麼是 CRUD?就讓我們繼續看下去~

先來介紹什麼是 CRUD?

CRUD(分別為 Create, Read, Update, Delete 英文四字首字母縮略的術語)來稱呼;而亞洲地區使用漢語的開發人員,或可能以四個漢字:增 查 改 刪 來略稱。

所以 CRUD 就是對資料庫的四個基本操作,那麼要開始之前,我們得先連結資料庫。而我選用的資料庫系統是 MySQL ,下面再來介紹怎麼連結。


資料庫的好幫手 - Sequel Pro

在開始寫 code 之前,我們要先建立資料庫跟資料表,但是因為 phpMyAdmin 是透過瀏覽器把資料庫圖形界面化,操作起來還是有一點點...不方便。如果大家使用起來沒啥問題,是可以透過 phpMyAdmin 來處理資料庫。

如果跟我一樣有點受不了瀏覽器的延遲感,在這裡先介紹一個好用的工具 Sequel Pro,它是一個簡單好用的資料庫查閱軟體,除了支援(簡體)中文之外,重點是還免費!

使用方法非常簡單,一開始輸入

  • 名稱:自己取
  • 主機:主機 IP,我是本機開發,所以是127.0.0.1
  • 帳號:請輸入自己當初設定的
  • 密碼:請輸入自己當初設定的
  • 數據庫:可選可不選,如果想開啟預設的資料庫就可以先設定,確定連線後還是可以改。
  • 端口:就是 port 號,通常資料庫都是預設3306,除非你有改過設定。

Day 5 - PHP 應用程式環境架設 Part III 咱們有設定 MySQL ,不記得自己帳號密碼趕快回憶一下。

PS:截至目前為止 Sequel Pro 是 V.1.2 版,但是不支援 MySQL 8 以上,如果要支援 就要先下載 test builds 版


建立資料庫、資料表

透過 Sequel Pro,我們可以快速建立資料庫,我們取名 class,請注意在選擇 DataBase Encoding,Database Collation時,盡量以 utf8 為主。

預設是 utf8mb4 也可以,兩者的差異是 mb4 = most bytes 4,就是可以支援更多字符,詳細自己上網查

在這個資料庫中我們在創立一個名為 members 的資料表。

實作上我們習慣將資料表命名為複數,畢竟一張表是有很多資料的。

接著我們在這張表建立幾個欄位(Field)

  • cID:自動產生,自動累進
    類型 INT, Length 11, Unsigned, 鍵 PRI, 其他屬性 auto_increment
  • cName:會員名稱
    類型 VARCHAR, Length 30, 允許為 NULL
  • cBirthday:會員生日
    類型 DATE, 允許為 NULL
  • cEmail:會員 email
    類型 VARCHAR, Length 100, 允許為 NULL

用 PHP 連結 MySQL

新創立一個 connMySQL.php 的檔案,內容如下

<?php

$db_host = '127.0.0.1';
$db_userName = 'root';
$db_password = 'Your Password'; //請輸入你自己的密碼
$db_name = 'class';

$db_link = @mysqli_connect($db_host, $db_userName, $db_password, $db_name);
if (!$db_link) {
    die('資料庫連結失敗!');
} else {
   echo '資料庫連結成功';
}

mysqli_query($db_link, "SET NAMES 'utf8'");  //設定資料庫編碼 utf8

?>

連結成功就會像下面這樣


後記

今天先到這裡,明天正式開始實作 CRUD!


上一篇
Day 12 - 程式引入檔
下一篇
Day 14 - 實作第一個 CRUD 之 Read
系列文
新手後端工程師的學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言