首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 從 MySQL 讀取資料填充 HTML 下拉選單

     編輯:PHP 綜合知識

程式碼範例

<?php
$record = 0;
$db = @mysql_pconnect('localhost', 'root');
@mysql_select_db('1234', $db);
$strsql = "select * from 1234_data";
$result = @mysql_query($strsql);
$data = @mysql_fetch_array($result);
$record = @mysql_num_rows($result);

echo "<select name=type size=1>\n";
do {
    if ($record == 1) {
        echo "<option value=\"{$data['cname']}\" selected>{$data['cname']}</option>\n";
    } else {
        echo "<option value=\"{$data['cname']}\">{$data['cname']}</option>\n";
    }
} while ($data = @mysql_fetch_array($result));
echo "</select>\n";
?>

關鍵點解析

  • 使用 mysql_pconnect 建立持久連線,減少連線開銷。
  • do-while 迴圈確保至少執行一次,適合處理單筆資料時預設選中。
  • @ 抑制錯誤訊息,生產環境建議移除並妥善處理錯誤。
  • 注意: 原碼第 18 行 $data'cname'] 缺少陣列索引符號,已修正為 $data['cname']。

現代化改寫建議(PDO + Prepared Statements)

<?php
try {
    $pdo = new PDO('mysql:host=localhost;dbname=1234;charset=utf8', 'root', '');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $pdo->query('SELECT cname FROM 1234_data');
    $rows = $stmt->fetchAll(PDO::FETCH_COLUMN);

    echo '<select name="type">';
    foreach ($rows as $i => $cname) {
        $selected = (count($rows) === 1 && $i === 0) ? ' selected' : '';
        echo "<option value=\"{$cname}\"{$selected}>{$cname}</option>";
    }
    echo '</select>';
} catch (PDOException $e) {
    error_log($e->getMessage());
    echo '<select name="type"><option>資料讀取失敗</option></select>';
}
?>

安全性提醒

  • 避免使用 root 無密碼連線資料庫。
  • 輸出至 HTML 時應對資料進行 htmlspecialchars() 轉義,防止 XSS。
  • mysql_* 函數已棄用(PHP 5.5+),新專案請改用 PDO 或 MySQLi。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved