到目前爲止,我將我需要的所有相關參數存儲爲一個php文件中的變量;然後通過每個頁面中需要這些參數的require
語句指向該文件。 這是大多數時候都很好,很容易維護,但有時我需要更改這些變量,並且我覺得需要某種網頁面板,我可以更容易地更改這些變量(我在想到帶有表單的網頁來更新參數)。 所以我在我的MySQL數據庫中創建了一個表來存儲參數(基本上,這個表有兩列:ParamName
和ParamValue
;我已經將參數名稱存儲爲varchar ,在開頭處沒有$符號),in爲了創建我腦海中的網頁面板。MySQL/PHP - 將參數存儲在數據庫表中:好的或壞的想法?
我想使用此查詢,提取所有參數名稱和值:
$query=$mysqli->query('select * from parameters');
while($row=mysqli_fetch_assoc($query)) {
$ParamName=$row["ParamName"];
$$ParamName=$row["ParamValue"]; }
- 這是一個好的或壞的主意嗎?
- 我可能遇到的主要問題是什麼(就安全性而言)?
- 使用
$$ParamName
如何折舊和危險? - 我最好改變主意,或者我可以這樣做?
編輯:我改變mysql_
語法爲mysqli_
建議。
[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – esqew 2014-10-29 15:07:07
不好主意。從不污染你的可變空間。如果你在24小時編碼狂歡後創建一個名爲'_POST'的ParamName?甚至更糟,'_SERVER'?現在你有一個很大的問題。 – 2014-10-29 15:11:52
這是窮人的應用程序設計,以塞滿命名變量填充的全局變量空間。更好的方法是創建一個名爲「config」的變量或對象並使用它。我建議你把它分成兩組「config」和「settings」,只加載數據庫中的設置。「config」會處理你的數據庫連接信息,服務器名稱或任何需要保持安全的東西。 – DampeS8N 2014-10-29 15:14:22