---
# System prepended metadata

title: ch1 認識 PHP 與 MySQL
tags: [挑戰PHP7／MySQL程式設計與超強專題特訓班(第四版)]

---

---
tags: 挑戰PHP7／MySQL程式設計與超強專題特訓班(第四版)
---
# ch1 認識 PHP 與 MySQL
## ch1 認識 PHP 與 MySQL


### 挑戰PHP7／MySQL程式設計與超強專題特訓班(第四版)(適用PHP5～7，MariaDB)

[挑戰PHP7／MySQL程式設計與超強專題特訓班(第四版)(適用PHP5～7，MariaDB)](https://www.books.com.tw/products/0010733550)

------

### 1.1.1 網站建置的趨勢

目前網路傳遞訊息的媒體，有一半以上是藉由網頁的顯示來達成。有許多網站提供的訊息是以靜態的方式來完成，所有的主頁內容都是固定不變，更新只能靠手動的編輯才能完成。但是有越來越多網站提供了互動溝通的服務，讓所有的瀏覽者不再是被動的接受資訊，而是更進一步的對網頁的內容提供意見，參與討論。

但是這樣的技術並不是一種單純的程式語言，它能藉著一種通用的標準模式，與其他伺服器主機上的資源銜接，而其中最常使用的資源，就是資料庫。


### 1.1.2 標準網站(靜態網站)

標準網站，又稱為靜態網站，它是由一組相關的 HTML 網頁和檔案存放在執行網站伺服器的電腦上所組成的，一般這樣的網頁也稱為靜態網頁。

網站伺服器是提供網頁的軟體，會對網頁瀏覽器所發出的要求做出回應。當使用者在網頁上按一下連結、在瀏覽器中選擇書籤或在瀏覽器的「網址」方塊中輸入 URL 並按下「移至」時，便會產生網頁要求。

當網站伺服器接到靜態網頁的要求時，伺服器會讀取並找到網頁，然後將它傳送到要求的瀏覽器，如下圖所示:

![](https://i.imgur.com/i9m7CqA.png)



### 1.1.3 認識互動網站(動態網站)

互動網站，一般又稱為動態網站。當網站伺服器接到對標準網頁的要求時，伺服器會直接將網頁傳送到提出要求的瀏覽器，不做進一步的修改。但是網站伺服器接收到對動態網頁的要求時，反應則不相同：他會將網頁傳送到負責完成網頁的特殊軟體擴充功能，這個特殊軟體稱為應用程式伺服器。
 
* 單純處理動態網站的原理

一般應用程式伺服器的執行方式是直接讀取網頁上的程式碼，根據程式碼中的指示完成網頁，然後再將程式碼從網頁移除。應用程式伺服器會將靜態網頁傳回網站伺服器，後者則將該網頁傳送到提出要求的瀏覽器，瀏覽器在網頁到達時所取得的資料是純粹的 HTML，不過已經是經過更新的結果。下面是處理過程的總覽：

![](https://i.imgur.com/onR8Ls8.png)

這裡的動態表現是根據瀏覽器端的要求來回應處理後的結果，這樣的方式較為單純而直接。應用程式伺服器另一種更為進階的執行方式，即是連接資料庫。

* 連結資料庫處理動態網站的原理

應用程式伺服器還可以進一步讓您使用資料庫的伺服器端資源，在動態網頁中程式設計師可以指示應用程式伺服器從資料庫擷取資料，並將其插入網頁的 HTML中。**從資料庫擷取資料的指示稱為資料庫查詢**。查詢是由搜尋準則所組成，這些準則是以稱為 SQL(結構化查詢語言) 的資料庫語言表達。

![](https://i.imgur.com/sBV76Wi.png)

### [應用程式伺服器](https://zh.wikipedia.org/wiki/%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F%E4%BC%BA%E6%9C%8D%E5%99%A8)

WEB伺服器、應用程式伺服器、HTTP伺服器區別（基礎普及）
https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/526333/

-----

### PHP的介紹

PHP (PHP Hypertext Preprocessor)，是一種伺服器端網頁程式語言，可嵌入於 HTML 中來運行。

PHP 的核心為 Zend 引擎。

### 網站環境建置組合:
是Web application stacks的一種，也就是一組綁在一起來運行動態網站或伺服器的開源軟體。
#### 架構:作業系統(operating system)、網頁伺服器(web server)、資料庫伺服器(database server)、程式語言(programming language)。

常見開源軟體種類:
* LAMP (Linux + Apache + MySQL + PHP) 
* WAMP (Windows + Apache + MySQL + PHP) 
* MAMP (Mac OS + Apache + MySQL + PHP)

[Web application stacks](https://ithelp.ithome.com.tw/articles/10215686)

### PHP 開源內容管理系統（CMS）

* Joomla
* WordPress

[「分享」7 個精緻的 PHP 開源內容管理系統（CMS）](https://kknews.cc/zh-tw/tech/eaezlgy.html)



### MySQL介紹:

1. MySQL 是一個開放程式碼的資料庫。
2. 可跨平台應用在多種作業系統中。
3. 可供多種程式語言連接使用。
4. 支援多工多用戶使用。
5. 支援SQL語法查詢。
6. 支援多國語言。
7. 提供TCP/IP、ODBC和JDBC等多種資料庫連接途徑。
8. 提供用於管理、檢查、優化資料庫操作的管理工具。
