通过PHP显示数据库中的列名
我试图从我的数据库“设置”中提取所有列名,并在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
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';