我正在使用PHP從MySQL數據庫中查詢CSS設置,然後將其回傳到CSS樣式表中。示例代碼片段如下:在RGB中存儲RGB顏色。 char或int更好?
<?php
$connect = //connect string
$query = ($connect, "SELECT bgcolor, font FROM displays WHERE name = 'mySettings'");
while ($row = mysqli_query($query)){
$bgcolor = $row[bgcolor];
$font = $row[font];
}
echo '
body {
background-color: #'.$bgcolor.';
font: '.$font.';
}
';
?>
表「displays」對於設置的每個CSS屬性都有一列。每行表示用戶保存的一組顏色/字體/填充/邊距設置。
列「font」是數據類型varchar(50)。什麼數據類型應該是「bgcolor」? CSS希望看到一個十六進制值,但MySQL中沒有十六進制數據類型。邏輯選擇是將值存儲爲int類型,並在SELECT語句中使用HEX()函數。
然後,再次,可能會更容易和/或使用更少的空間來存儲它作爲字符(6)? PHP只是作爲一個字符串對待,而不是實際的數字。十六進制值不會有任何數學函數應用於它;它只是粘貼到CSS中。
在這樣的情況下,是否有任何優惠之間的價值存儲爲int或char?
總是將該東西存儲爲字符串,而不是數字。電話號碼通常應該作爲字符串存儲,而不是數字 – CRABOLO
我只是將CSS屬性值完全存儲爲數據庫中的字符串(例如「#ab382d」 )。沒有在CSS中對'#'進行硬編碼,你甚至可以存儲諸如「透明」或「藍色」之類的東西,它仍然可以在你的CSS中工作。 –
你的顏色可以有前導0,所以一種選擇是保存爲一個字符串,另一種是使用'hexdec()'並存儲爲數字,但是你必須記得使用函數通過反轉來獲取十六進制。 – sunshinejr