完整可執行範例
<?php
// 1. 連接資料庫(請修改帳號密碼)
$link = mysqli_connect('localhost', 'root', '123456', 'ruida')
or die('連線失敗: ' . mysqli_connect_error());
// 2. 執行查詢
$query = 'SELECT * FROM product';
$result = mysqli_query($link, $query)
or die('查詢失敗: ' . mysqli_error($link));
// 3. 輸出 HTML 表格
echo "<table border='1' cellpadding='5'>\n";
echo "<tr><th>ID</th><th>名稱</th><th>價格</th></tr>\n";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
foreach ($row as $value) {
echo "<td>" . htmlspecialchars($value) . "</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
// 4. 釋放資源、關閉連線
mysqli_free_result($result);
mysqli_close($link);
?>
關鍵改良點(對比原始 mysql_* 版本)
- 改用 mysqli,支援預處理、物件導向、更安全。
- 輸出時使用
htmlspecialchars() 防止 XSS。
- 表格加上
border、th 標題列,易讀性更好。
- 錯誤訊息顯示具體原因,方便除錯。
進階:預處理語句防 SQL 注入
$stmt = $link->prepare('SELECT * FROM product WHERE price > ?');
$stmt->bind_param('d', $minPrice);
$stmt->execute();
$result = $stmt->get_result();
// 後續輸出同前