Listing available tables in SQLite using php
<?php $dbhandle = sqlite_open('db/test.db', 0666, $error); if (!$dbhandle) die ($error); $query = "SELECT name, sql FROM sqlite_master WHERE type='table'"; $result = sqlite_query($dbhandle, $query, SQLITE_NUM); if (!$result) die("Cannot execute query."); while (sqlite_has_more($result)) { $row = sqlite_fetch_array($result); echo "table name is: $row[0], sql used to create : $row[1]"; echo "<br>"; } sqlite_close($dbhandle); ?>
Output look like
table name is: scanftree, sql used to create : CREATE TABLE scanftree(Id integer PRIMARY KEY,Name text UNIQUE NOT NULL)
Explanation
$query = "SELECT name, sql FROM sqlite_master WHERE type='table'";We use the sqlite_master table to obtain the list of tables for the database. The name column of the sqlite_master table gives us the table name. The sql column gives us the SQL used to create that table.
while (sqlite_has_more($result)) { $row = sqlite_fetch_array($result); echo "table: $row[0], sql: $row[1]"; echo "<br>"; }The while loop goes through the rows of the result set. We use a new function. sqlite_has_more() returns TRUE if there are more rows available from the result set, or FALSE otherwise.