【发布时间】:2012-06-05 04:52:39
【问题描述】:
我想使用 PHP 和 PHP 数据对象 (PDO) 使用 MySQL 数据库中的 ENUM 字段中的选项填充 HTML <select>。我该怎么做?
【问题讨论】:
我想使用 PHP 和 PHP 数据对象 (PDO) 使用 MySQL 数据库中的 ENUM 字段中的选项填充 HTML <select>。我该怎么做?
【问题讨论】:
原版 PHP 实现:
<select>
<?
$result = mysql_query('SHOW COLUMNS FROM '.$table_name.' WHERE field="'.$column_name.'"');
while ($row = mysql_fetch_row($result)) {
foreach(explode("','",substr($row[1],6,-2)) as $option) {
print("<option>$option</option>");
}
}
?>
<select>
PHP 数据对象实现
<select>
<?
$sql = 'SHOW COLUMNS FROM '.$table_name.' WHERE field="'.$column_name.'"';
$row = $db->query($sql)->fetch(PDO::FETCH_ASSOC);
foreach(explode("','",substr($row['Type'],6,-2)) as $option) {
print("<option>$option</option>");
}
?>
</select>
【讨论】:
这是另一种解决方案,当您想将枚举值放入数组中以根据需要使用时,您可以将其用作辅助函数。
public static function getSQLEnumArray($table, $field, $db){
$row = $db->query("SHOW COLUMNS FROM ".$table." LIKE ".$field)->fetch(PDO::FETCH_ASSOC);
preg_match_all("/'(.*?)'/", $row['Type'], $categories);
$fields = $categories[1];
return $fields;
}
【讨论】: