我有一段代码,它给出了一个特定表的所有列名列表。我可以将此列表用作我的$ row [' VARIABLE']而不是指定每一行?
可以看到表名的当前输出here这是文本的第二段,第一段是我的表名(USERS,ADMIN_LOGIN)
我正在制作一个小脚本,它将列出一个表的所有表内容,但很可能表会经常更改所以我想要一个可以自动生成目录的脚本,而不必手动重新生成像我在下面的第二段代码中那样输入所有内容?
谢谢你们
<?php
// Display all sqlite column names for chosen table
$db = new SQLite3('data.db');
$tablesquery = $db->query("PRAGMA table_info(USERS)");
while ($table = $tablesquery->fetchArray(SQLITE3_ASSOC)) {
echo $table['name'] . '<br />';
}
// Display * from USERS
$db = new SQLite3('data.db');
$results = $db->query('SELECT * FROM USERS');
while ($row = $results->fetchArray()) {
echo "ID = ". $row['ID'] . "\n";
echo "USERNAME = ". $row['USERNAME'] ."\n";
echo "AGE = ". $row['AGE'] ."\n";
echo "LOCATION = ".$row['LOCATION'] ."\n\n";
echo "ANYTHING_ELSE = ". $row['ANYTHING_ELSE'] . "\n";
echo "EMAIL = ". $row['EMAIL'] ."\n";
echo "PROFILE_APPROVED = ". $row['PROFILE_APPROVED'] ."\n";
echo "NUMBER_OF_BATTLES = ".$row['NUMBER_OF_BATTLES'] ."\n\n";
echo "TOTAL_WINS = ".$row['TOTAL_WINS'] ."\n\n";
}
?>
答案 0 :(得分:1)
是的,您可以将变量用于数组的索引值。例如,
$row = array('col_name' => 'column value');
$index = 'col_name';
echo $row[$index]; // Equivalent to $row['col_name']. Prints "column value"
您应该能够使用上述逻辑轻松完成您想要的任务。基本上只是将第一个查询中的列名存储到一个数组中,然后遍历该数组以在每次打印行时获取列名。
尝试一下:
// Display all sqlite column names for chosen table
$db = new SQLite3('data.db');
$tablesquery = $db->query("PRAGMA table_info(USERS)");
$columns = array();
while ($table = $tablesquery->fetchArray(SQLITE3_ASSOC)) {
$columns[] = $table['name'];
}
// Display * from USERS
$db = new SQLite3('data.db');
$results = $db->query('SELECT * FROM USERS');
while ($row = $results->fetchArray()) {
foreach ($columns as $col)
echo $col . " = " . $row[$col] . "\n";
}
答案 1 :(得分:0)
我使用以下命令以按照表中定义的顺序获取列名列表。我在保存数据时使用它来填充插入/选择。
sel columnname
from dbc.columns
where databasename='databasename'
and tablename='tablename'
order by columnid;