phpsqlite

Retrieve column names from sqlite3 database with php


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.


Solution

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