【发布时间】:2019-05-15 17:56:27
【问题描述】:
我正在尝试从 SQL 数据库中提取列名以在 HTML 的下拉列表中使用。然后我尝试将 PHP 插入 HTML 下拉列表以显示列名。
我使用 fetch 数组从 SQL 中获取输出,使用另一个下拉列表中的变量来拉取相关的 SQL 表。但是我不能在 PHP 中返回列名。我得到的只是使用$row[2].的值
有没有一种简单的方法来拉取列名(即数值后方括号中的非数值)。
$query="SELECT * FROM ".($units_cat)."";
if ($result = mysqli_query($link, $query)) {
$row = mysqli_fetch_array($result);
echo nl2br (" \n Query was successful \n");
print_r($row);
echo "<br>";
}
HTML
<option value="<?php $row[2]?>"
<?php
if($_POST['units_from']==$row)
echo 'selected="selected"';?>
>
<?php echo ($row[2])?>
</option>
SQL 查询的输出
Array (
[0] => 1
[id] => 1
[1] => Klbs
[from_value] => Klbs
[2] => 1.0000000000
[klbs] => 1.0000000000
[3] => 1000.0000000000
[pound] => 1000.0000000000
[4] => 0.4535923700
[ton] => 0.4535923700
[5] => 453.5923700000
[kg] => 453.5923700000
[6] => 224.8089424432
[newton] => 224.8089424432
[7] => 22.4808942443
[dn] => 22.4808942443
[8] => 0.2248089424
[kn] => 0.2248089424
)
【问题讨论】:
-
尝试
mysqli_fetch_assoc或将MYSQLI_ASSOC添加到您的fetch_array(请参阅文档),您将能够仅获得列-> 值。现在,就获取所有列名而言,您可以使用 foreach 来获取键/值。 -
您很容易受到该代码的 SQL 注入攻击,无论何时将值插入查询总是使用准备好的语句,无论插入查询的数据源是什么