Pergunta

I have the following piece of code which displays a list of my current table names in my database which works fine.

<?php // Display all sqlite tables
    $db = new SQLite3('data.db');
    $tablesquery = $db->query("SELECT name FROM sqlite_master WHERE type='table';");

    while ($table = $tablesquery->fetchArray(SQLITE3_ASSOC)) {
        echo $table['name'] . '<br />';
} ?>

Can you display the list of column names for a table like you can do in mysql? I have tried numerous iterations and all have failed.

Just for the record this is the code I used thanks to esqew for the help:

<?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 />';
} ?>

All tested and working

Foi útil?

Solução

Refer to SQLite.org - PRAGMA Statements:

PRAGMA table_info(sqlite_master);

To fit it into your PHP implementation:

<?php // Display all sqlite tables
    $db = new SQLite3('data.db');
    $tablesquery = $db->query("PRAGMA table_info(sqlite_master);");

    while ($table = $tablesquery->fetchArray(SQLITE3_ASSOC)) {
        echo $table['name'] . '<br />';
} ?>

Outras dicas

Try this sqlite table schema parser, I implemented the sqlite table parser for parsing the table definitions in PHP.

https://github.com/maghead/sqlite-parser

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top