PHP MySQL 设置/配置表调用值



谁能帮我解决这个问题。

我有一个名为 settings 的 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

好吧,您检索了错误的列名。

$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'];

您的设置名称是"设置",而不是"名称">

$sql = "SELECT * FROM settings";
$result = $mysqli->query($sql);
while ($row = mysql_fetch_assoc($result)) {
$config[$row['setting']] = $row['value'];
} 

其他人的最终代码是:

$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'];

最新更新