首页 > 解决方案 > 如何将css存储到mysql数据库中并回调它以显示在html上

问题描述

我想将我的 css 存储在 mysql 数据库中。但是我应该如何存储它。以及如何将其回调以显示在html页面上。

注意:我只想将css存储在mysql数据库中

标签: phphtmlmysqldatabase

解决方案


我不确定将 CSS 存储在数据库中是否是一个好主意,但既然您明确要求它,那么您可能会采用这种方法。

TABLE: styles

| id | selector | style_name   |
|----|----------|--------------|
| 1  | body     | align-center |
| 2  | .d-flex  | display-flex |
| 3  | #badge   | custom-badge |

TABLE: styles_css

| id | style_name   | property     | value     |
|----|--------------|--------------|-----------|
| 1  | align-center | text-align   | center    |
| 2  | display-flex | display      | flex      |
| 3  | custom-badge | color        | red       |
| 4  | custom-badge | font-size    | 1.5rem    |

然后,当您需要 HTML 样式时,您可以加入这些表格以获取 CSS 样式。

SELECT `property`, `value`
FROM `styles_css` 
LEFT JOIN `styles`
ON `styles`.`style_name` = `styles_css`.`style_name`
WHERE
`styles`.`selector` = '#badge';

这会给你

| property   | value    |
|------------|----------|
| color      | red      |
| font-size  | 1.5rem   |

例子:

<?php
    // prepare statement and bind params(PDO would be a good option)
    $sql = "
        SELECT `property`, `value`
        FROM `styles_css` 
        LEFT JOIN `styles`
        ON `styles`.`style_name` = `styles_css`.`style_name`
        WHERE
        `styles`.`selector` = '#badge';
    ";
     //after execution, something like $styles = $db->exec($sql);
    foreach($styles as $property => $value) {
        $css = "{$property} : {$value}; "; 
    }
    // remove trailing semi-colon
    $css = rtrim($css, ';');
?>

推荐阅读