// 不推薦:數字索引 $temp[0] = "richmond"; $temp[1] = "tigers"; for ($x=0; $x"richmond", "nickname" => "tigers", "aim" => "premiers"]; foreach ($temp as $key => $value) { echo "$key : $value "; }
PHP 提供 50+ 陣列函數,善用 array_map、array_filter、array_reduce 等函數式風格操作。
$temp = ["one" => 1, "two" => 2];
// 可行但不建議
echo "The first element is $temp[one].";
// 推薦:花括號語法,清晰界定變數邊界
echo "The first element is {$temp['one']}.";
// 複雜表達式也支援
echo "Total: {$temp['one'] + $temp['two']}";
$result = mysqli_query($conn, "SELECT cust_id, surname, firstname FROM customer");
while ($row = mysqli_fetch_assoc($result)) {
echo "ID: {$row['cust_id']}\n";
echo "姓氏: {$row['surname']}\n";
echo "名字: {$row['firstname']}\n\n";
}
多表 JOIN 別名技巧:
SELECT w.name AS wname, r.name AS rname FROM winery w, region r WHERE w.region_id = r.region_id; // 存取:$row['wname'], $row['rname']
聚合函數別名:
SELECT COUNT(*) AS total FROM customer; // 存取:$row['total'](而非 $row['COUNT(*)'])
症狀:瀏覽器無輸出、Document Contains No Data、頁面截斷。
成因多為 HTML 標籤未正確閉合(</table>、</form>、</div> 缺失)。
解決:檢視原始碼 → W3C 驗證器 validator.w3.org → 開啟 PHP 最高錯誤報告:
error_reporting(E_ALL);
ini_set('display_errors', 1);
場景:用戶點擊連結執行動作(如刪除、登出),完成後停留原頁或導向新頁。
// action.php
// 執行資料庫操作...
header("Location: " . $_SERVER['HTTP_REFERER']); // 返回上一頁
exit; // 必須 exit,防止後續輸出干擾 header
常見錯誤:
headers already sentexit 導致腳本繼續執行問題:POST 提交後按 F5 重新整理,瀏覽器重送請求導致重複寫入。
解決:Post-Redirect-Get (PRG) 模式
// addcust.php - 處理 POST
mysqli_query($conn, "INSERT INTO customer ...");
// 關鍵:重導向至結果頁(GET)
header("Location: cust_receipt.php");
exit;
// cust_receipt.php - 顯示結果(GET)
echo "客戶新增成功!";
重新整理 cust_receipt.php 不會重複執行 INSERT。
// 緊急報表:獨佔表鎖,阻塞其他讀寫 mysqli_query($conn, "LOCK TABLES report_table WRITE"); /* 執行複雜報表查詢 */ mysqli_query($conn, "UNLOCK TABLES");
慎用:會嚴重影響併發,僅限維護窗口或極高優先度任務。
$result = mysqli_unbuffered_query($conn, "SELECT * FROM huge_table");
// 立即返回,不等待全部資料傳輸到客戶端緩衝區
while ($row = mysqli_fetch_assoc($result)) {
// 逐行處理,記憶體佔用極低
processRow($row);
}
限制:無法使用 mysqli_num_rows()(結果集大小未知)、查詢未完成前不可執行其他查詢(同一連線)。
mysql_* 已移除)LOAD DATA INFILE 或批次 INSERTslow_query_log 定期分析