官網:MAMP Pro。安裝後網站根目錄位於 /Applications/MAMP/htdocs,啟動服務後可透過 https://localhost:8888 訪問,或點選工具列快速開啟站點。

brew tap josegonzalez/homebrew-php
brew install php54
安裝完成後 PHP 路徑為 /usr/local/bin/php,配合 PhpStorm 即可愉快開發。
-- 顯示所有資料庫
SHOW DATABASES;
-- 選擇資料庫
USE guest;
-- 查看當前資料庫
SELECT DATABASE();
-- 查看資料表列表
SHOW TABLES;
-- 查看資料表結構
DESCRIBE users;
-- 查看建表語句
SHOW CREATE TABLE users;
-- 建立資料庫
CREATE DATABASE book;
-- 設定中文編碼
SET NAMES gbk; -- 或 utf8
-- 建立資料表
CREATE TABLE users (
username VARCHAR(20) NOT NULL,
sex CHAR(1),
birth DATETIME
);
-- 插入資料
INSERT INTO users (username, sex, birth) VALUES ('jack', 'male', NOW());
-- 查詢資料
SELECT * FROM users;
SELECT id, name, email FROM class;
-- 更新資料
UPDATE class SET point = 80 WHERE id = 2;
-- 刪除資料
DELETE FROM class WHERE id = 2;
| 類別 | 類型 |
|---|---|
| 整數 | TINYINT, SMALLINT, INT, BIGINT |
| 浮點/定點 | FLOAT, DOUBLE, DECIMAL(M,D) |
| 字串 | CHAR, VARCHAR |
| 日期時間 | DATETIME, DATE, TIMESTAMP |
| 大文本 | TINYTEXT, TEXT, LONGTEXT |
注意:PHP 7.0+ 已移除 mysql_* 系列函式,生產環境請使用 mysqli 或 PDO。以下僅作教學示範舊版寫法。
<?php
header('Content-Type: text/html; charset=utf-8');
// 使用常量儲存配置(較安全)
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PWD', 'your_password');
define('DB_NAME', 'trigkit');
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD) or die('連線失敗: ' . mysqli_connect_error());
mysqli_select_db($conn, DB_NAME) or die('選擇資料庫失敗: ' . mysqli_error($conn));
mysqli_query($conn, 'SET NAMES UTF8');
$sql = "SELECT * FROM class";
$result = mysqli_query($conn, $sql) or die('SQL錯誤: ' . mysqli_error($conn));
while ($row = mysqli_fetch_assoc($result)) {
echo "ID: {$row['id']}, Name: {$row['name']}, Email: {$row['email']}<br>";
}
mysqli_free_result($result); // 釋放結果集記憶體
$stmt = $conn->prepare("INSERT INTO class (name, email, point, regdate) VALUES (?, ?, ?, NOW())");
$stmt->bind_param("ssi", $name, $email, $point);
$name = '小明'; $email = 'xiaoming@163.com'; $point = 100;
$stmt->execute();
echo $stmt->affected_rows ? '新增成功' : '新增失敗';
$stmt->close();
mysqli_close($conn); // 非持久連線腳本結束會自動關閉,可省略
| 函式 | 說明 |
|---|---|
| mysqli_fetch_assoc() | 取得關聯陣列 |
| mysqli_fetch_array() | 取得關聯+數字陣列 |
| mysqli_num_rows() | 取得結果筆數 |
| mysqli_insert_id() | 取得最後自增 ID |
| mysqli_affected_rows() | 受影響行數 |
| mysqli_error() | 錯誤訊息 |
最佳實踐:新專案請直接使用 PDO 或 mysqli 預處理,棄用
mysql_*舊 API;資料庫帳號遵循最小權限原則,避免直接使用 root 連線。