为了账号安全,请及时绑定邮箱和手机立即绑定

来自php中sql查询的列名

来自php中sql查询的列名

PHP
蝴蝶刀刀 2021-06-16 18:25:59
我正在尝试从 SQL 数据库中提取列名以在 HTML 的下拉列表中使用。然后我试图将 PHP 插入到 HTML 下拉列表中以显示列名。我已经使用 fetch array 从另一个下拉列表中使用变量从 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     )
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

我能够通过使用 DESCRIBE 输出表数据数组来做到这一点。然后创建一个列数组。


 $query2=("DESCRIBE ".mysqli_real_escape_string($link, $units_cat));


if ($result2 = mysqli_query($link, $query2)) {

    $table_desc = mysqli_fetch_all($result2);



#Create an array of column values   

    foreach($table_desc as $val) {  

        $col[]=$val[0]; 

    }

然后在相关下拉列表中调用列值。


 <option value="<?php echo($col[2]) ?>"<?php if($_POST['units_from']==($col[2])) echo 

 'selected="selected"';?>><?php echo($col[2]) ?></option>  

我不得不将 $units_cat 引用的表列入白名单,因为我相信您无法准备表,因为您无法将参数绑定到 PHP/SQL 中的表条目。


#Get tables list for whitelisting

$query3="Show tables";

$result3=mysqli_query($link,$query3);


if (!$result3) {

    echo "DB Error, could not list tables\n";

    echo 'MySQL Error: ' . mysqli_error();

    exit;

}


if ($result3=mysqli_query($link,$query3)){

    while($row=mysqli_fetch_row($result3)){


        $tables[]=$row[0];


    }

}       



#UNITS CAT WHITELIST CHECK  

if (in_array($units_cat,$tables)){


    echo nl2br (" \n Units Cat Table exists");


}else{


    echo "Table does not exist";

    mysqli_close($link);

    echo "<br>";

    die("non valid entry");

}


查看完整回答
反对 回复 2021-06-19
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

使用 mysql_fetch_array 你可以单独访问每个参数 $row['id']; $row['磅'];

但是,考虑到您可以通过使用公制单位进行简单转换来节省空间,因此在数据库中存储相同变量(以 kg、以吨为单位、以...为单位)的不同值似乎有点不必要。您的用户是否需要每次输入不同单位的重量?


查看完整回答
反对 回复 2021-06-19
  • 2 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信