Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP显示数据库中的列名_Php_Mysql_Sql - Fatal编程技术网

通过PHP显示数据库中的列名

通过PHP显示数据库中的列名,php,mysql,sql,Php,Mysql,Sql,我试图从我的数据库“设置”中提取所有列名,并在PHP中列出它们 一些研究得出以下结论: SHOW COLUMNS FROM settings 但我不知道如何通过PHP列出这些。 如果发布的任何代码都是预先准备好的语句格式,但不是必需的,这将非常有用 这是我的PHP,它给了我这个错误: Notice: Undefined index: sThumbWidth in /home/demomycm/public_html/subdomains/mercury/eshop/library/classe

我试图从我的数据库“设置”中提取所有列名,并在PHP中列出它们

一些研究得出以下结论:

SHOW COLUMNS FROM settings
但我不知道如何通过PHP列出这些。 如果发布的任何代码都是预先准备好的语句格式,但不是必需的,这将非常有用

这是我的PHP,它给了我这个错误:

Notice: Undefined index: sThumbWidth in /home/demomycm/public_html/subdomains/mercury/eshop/library/classes/class.settings.php on line 204
对于数据库中的每个字段

$loadColumns = array();

    $query = "SHOW COLUMNS FROM settings";
    $result = $this->glob->dbConn->query($query);
    if($this->glob->dbConn->errno) {
        trigger_error('An error occurred whilst loading counties from the database.' . PHP_EOL . 'Query: ' . $query . PHP_EOL . 'Error[' . $this->glob->dbConn->errno . ']: ' . $this->glob->dbConn->error, E_USER_WARNING);
    } elseif($result->num_rows) {
        while($row = $result->fetch_assoc()) {
            $loadColumns[$row['Field']];
        }
        return $loadColumns;
    }

$loadColumnsHtml = '';
    $loadColumns = $this->Settings->LoadColumns();
    foreach($loadColumns as $i => $field) {
        $loadColumnsHtml .= '<div class="home-stat-small-link">' . ($i + 1) . '. <strong>' . $field['Field'] . '</strong>.</div>';
    }
$loadColumns=array();
$query=“显示设置中的列”;
$result=$this->glob->dbConn->query($query);
如果($this->glob->dbConn->errno){
trigger_error('从数据库加载县时出错。'.PHP_EOL。'Query:'.$Query.PHP_EOL。'error['.$this->glob->dbConn->errno.]:'.$this->glob->dbConn->error,E_USER_WARNING);
}elseif($result->num\u行){
而($row=$result->fetch_assoc()){
$loadColumns[$row['Field']];
}
返回$loadColumns;
}
$loadColumnsHtml='';
$loadColumns=$this->Settings->loadColumns();
foreach($i=>$field形式的loadColumns){
$loadColumnsHtml.=''($i+1)。。$field['field'].;
}

在代码中,
$loadColumns
作为一个数组。
此行不做任何操作:
$loadColumns[$row['Field']
基本上,您可以使用与
$row['Field'
]关联的键在$loadColumns中获取值,而不分配任何内容

你想要这样的东西,也许是为了那一行:

array_push($loadColumns,$row['Field']);
完整代码如下

$loadColumns = array();

    $query = "SHOW COLUMNS FROM settings";
    $result = $this->glob->dbConn->query($query);
    if($this->glob->dbConn->errno) {
        trigger_error('An error occurred whilst loading counties from the database.' . PHP_EOL . 'Query: ' . $query . PHP_EOL . 'Error[' . $this->glob->dbConn->errno . ']: ' . $this->glob->dbConn->error, E_USER_WARNING);
    } elseif($result->num_rows) {
        while($row = $result->fetch_assoc()) {
           array_push($loadColumns,$row['Field']);  //<-- this line has been changed
        }
        return $loadColumns;
    }

$loadColumnsHtml = '';
    $loadColumns = $this->Settings->LoadColumns();
    foreach($loadColumns as $i => $field) {
        $loadColumnsHtml .= '<div class="home-stat-small-link">' . ($i + 1) . '. <strong>' . $field['Field'] . '</strong>.</div>';
    }
$loadColumns=array();
$query=“显示设置中的列”;
$result=$this->glob->dbConn->query($query);
如果($this->glob->dbConn->errno){
trigger_error('从数据库加载县时出错。'.PHP_EOL。'Query:'.$Query.PHP_EOL。'error['.$this->glob->dbConn->errno.]:'.$this->glob->dbConn->error,E_USER_WARNING);
}elseif($result->num\u行){
而($row=$result->fetch_assoc()){
数组推送($loadColumns,$row['Field']);//设置->加载列();
foreach($i=>$field形式的loadColumns){
$loadColumnsHtml.=''($i+1)。。$field['field'].;
}
在MySQL连接(已弃用)上,您可以使用:

mysql_list_fields
关于PDO(推荐)使用:

在PDO上,您还可以使用
PDOStatement::getColumnMeta()
。但它的状态为:实验性使用

或者在更新的版本中,您可以使用


您可以像任何db select语句一样对其进行回显。清单代码是相同的。您可以像从PHP执行和从该查询中获取行,就像从任何其他查询一样。查看返回的列名。
字段是您需要的。使用PHPYou中的回显函数建立db连接并获取显示值在这里签名:
$loadColumns[$row['Field']];
。您的意思是执行
$loadColumns[$row['Field']]=$row['Field'];
$loadColumns[]=$row['Field'];
或类似操作吗?
$query = $dbh->prepare("DESCRIBE tablename");
$query->execute();
$tableFields = $query->fetchAll(PDO::FETCH_COLUMN);
DESCRIBE my_table;
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';