用于检索列名列表的SQL查询

时间:2016-08-17 11:53:41

标签: php mysql sql

所以我一直在努力使用我的数据库让它给我一个表中包含的列的名称。

这是我的PHP:

  $sql = "SELECT * FROM hacklvrf_db.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'generators'" ; 
  $result = mysqli_query($con, $sql); 
  $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
  $generators = $row['generators'];
  foreach ($row as $lol) {
  echo ($lol);
  }

出于某种原因,这并没有回答任何问题(PHP没有弹出错误,但我的变量似乎是空的),我真的不明白我错过了什么。

  echo (gettype ($row));

显示'NULL'

我知道之前已经问过这个问题,我实际上从其他地方得到了我的SQL查询,但是因为我无法解决这个问题......我来了!

先谢谢你们!

1 个答案:

答案 0 :(得分:2)

更改

$sql = "SELECT * FROM hacklvrf_db.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'generators'";

$sql = "SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='database-name' AND `TABLE_NAME`='table-name'";

更改数据库名称和表名后使用了sql查询,我得到错误

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近'.COLUMNS WHERE TABLE_NAME

更新代码(只需将您的数据库名称和表名放入查询中)

<?php
$sql = "SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='database-name' AND `TABLE_NAME`='table-name'";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
  echo $row['COLUMN_NAME']."<br>";
}

?>

有关详情,请点击MySQL query to get column names?