【发布时间】:2018-12-10 16:43:53
【问题描述】:
我正在自动和动态地生成 SQL 查询,以便将 CSV 数据插入到选定的数据库中。现在我有一个包含 10 个不同数据库的列表。现在我很好奇是否可以通过从数据库中获取列名来动态构建我的查询的一部分(表名)?
这是我现在拥有的代码,但它不太有效:
function getTableDetails($table_name) {
global $con, $user;
$describeTable = mysqli_query($con, "DESCRIBE " . $user . "." . $table_name);
$fields = [];
while($show = mysqli_fetch_fields($describeTable)) {
$fields['column_name'][] = $show['COLUMN_NAME'];
$fields['column_length'][] = $show['CHARACTER_MAXIMUM_LENGTH'];
$fields['column_type'][] = $show['COLUMN_TYPE'];
}
return $fields;
}
我如何尝试获取它们
$table = getTableDetails($settings_type);
foreach ($table['column_name'] as $columnName) {
print_r($columnName);
}
【问题讨论】:
-
变量 $user 在这种情况下是数据库名称
-
另见
information_schema.columns。
标签: php mysql innodb procedural-programming