php - 从查询中获取 PDO 的列名称

标签 php mysql pdo

我想将我的代码从使用 mysql 转换为 pdo。 我正在寻找 mysql_field_name 的等效函数,但我没有找到任何函数,除了这个函数 PDOStatement::getColumnMeta ,但 PHP 文档说它是“实验性的”,并且不适用于 future 版本的 PHP。 所以我做了这项工作。

假设我有这张 table

id         name        age       city
1          ad          25         a      
2          im          23         b
3          sh          21         c 

我只想选择名称和城市

 name       city
  ad          a      
  im          b
  sh          c 

    $link = new PDO("mysql:host=localhost;dbname=db_name;charset=utf8",user,pass);
    $link->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $query="SELECT name,city FROM  table" ;
    $result = link->prepare($query);
    $result->execute();
    $result ->fetchAll(PDO::FETCH_ASSOC);

    foreach ($result as $value){
        $tablename =array_keys($value);
    }

    echo "<table><tr>";
    foreach ($tablename  as $key)
        echo "<td>".$key."</td>";
    echo "</tr></table>";

我不确定这是否是正确的方法。 或者如果有 PDO 函数可以完成这项工作

最佳答案

您可以像这样获取列名称

 foreach ($result as $row){
    foreach($row as $col_name => $val)
     {
     echo "$col_name == $val<br />";    
     }
    echo"Next Row<br />";
 }

关于php - 从查询中获取 PDO 的列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35307361/

相关文章:

php - 使用一个 mysql 的结果进行第二个查询

php - 如何将 html 页面转换为 pdf 并在每个 pdf 页面中用标题打破内容?

带有 MVC 的 PHP 前端 Controller

php - 与 utf8_general_ci 和 utf8_unicode_ci 混淆

mysql - 根据最近 90 天的登录计算活跃用户

mysql - 使用 INNER JOIN 更新的查询语法错误

php - Codeigniter 通过链接获取行详细信息(foreach)

java - hibernate MySQL

php - Slim框架PDO PGSQL,不绑定(bind)参数

php - 使用 PHP/MySql/PDO 更新除自增字段以外的所有值