PHP MySQL设置/配置表调用值

时间:2018-09-26 10:29:13

标签: php mysql

有人可以帮我吗?

我有一个称为设置的MySQL表,该表包含一些配置信息(下面的布局):

+----+--------------+---------------+
| id | setting      | value         |
+----+--------------+---------------+
|  2 | partemail    | @example.com  |
|  3 | version      | 2.1           |
|  4 | altrowcolour | #ffeff0       |
+----+--------------+---------------+

现在我想在PHP中做的是

"SELECT * from settings" 

但是让它循环遍历并将值分配给一个变量,这样我就可以在整个脚本中调用它们,但是在设置列下有一个名为其变量的变量。

如此:

  

$ partemail等于“ @ example.com”

     

$ version等于“ 2.1”

     

$ altrowcolour等于“#ffeff0”

所以我尝试了以下方法:

$sql = "SELECT * FROM settings";
$result = $mysqli->query($sql);

$config = array();
$result = mysql_query("SELECT * FROM config");
while ($row = mysql_fetch_assoc($result)) {
    $config[$row['name']] = $row['value'];
} 

但这不是真的。

任何人都可以提供帮助,如果上述做法不是最好的做法,我表示歉意,我不是开发人员。

在此先感谢您的帮助。

J

3 个答案:

答案 0 :(得分:1)

您的设置名称是“设置”,而不是“名称”

$sql = "SELECT * FROM settings";
$result = $mysqli->query($sql);

while ($row = mysql_fetch_assoc($result)) {
    $config[$row['setting']] = $row['value'];
} 

答案 1 :(得分:1)

请检索错误的列名。

$result = mysql_query("SELECT * FROM config");
$config = array();
while ($row = mysql_fetch_assoc($result)) {
    $value = $row['value'];
    $setting = $row['setting'];
    $config[] = ['setting' => $setting, 'value' => $value];
} 

编辑

仅使用mysqli

$conn = new mysqli($servername, $username, $password, $dbname);    
$sql = "SELECT * FROM config";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $value = $row['value'];
        $setting = $row['setting'];
        $config[] = ['setting' => $setting, 'value' => $value];
    }
}
$conn->close();

您可以像这样回显内容:

echo $config[0]['setting'];
echo $config[0]['value'];

答案 2 :(得分:0)

其他人的最终代码是:

$sql3 = "SELECT * FROM settings";
$result3 = $mysqli->query($sql3);

if ($result3->num_rows > 0) {
while ($row3 = $result3->fetch_assoc()){
    $config[$row3['setting']]=$row3['value'];
}
}

echo $config['version'];
echo "<br>";
echo $config['partemail'];
echo "<br>";
echo $config['altrowcolour'];