Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQLite3查询列出数据库中的所有表,只显示一个表_Php_Sqlite - Fatal编程技术网

Php SQLite3查询列出数据库中的所有表,只显示一个表

Php SQLite3查询列出数据库中的所有表,只显示一个表,php,sqlite,Php,Sqlite,我需要能够读取SQLite数据库中的所有表,而不知道这些表将被调用。我正在处理下面的example.db chinhook.db 表格 专辑, 艺术家, 顾客 雇员,, 体裁 发票, 发票行, 媒体类型, 播放列表, 播放曲目, 跟踪 目前,我正在使用以下 <?php $db = new SQLite3('db/chinhook.db'); $tablesquery = $db->query("SELECT name FROM sqlite_master WHERE

我需要能够读取SQLite数据库中的所有表,而不知道这些表将被调用。我正在处理下面的example.db

chinhook.db

表格

专辑, 艺术家, 顾客 雇员,, 体裁 发票, 发票行, 媒体类型, 播放列表, 播放曲目, 跟踪

目前,我正在使用以下

<?php
    $db = new SQLite3('db/chinhook.db');
    $tablesquery = $db->query("SELECT name FROM sqlite_master WHERE type='table';");
    $tables = $tablesquery->fetchArray(SQLITE3_ASSOC);

    foreach($tables as $name){
       echo $name.'<br />';
    }
?>
试试这个:

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

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

PDO方法中的

$db=newpdo('sqlite:Northwind.db');
$sql=“从sqlite\u主控中选择'name',其中'type`='table'按名称排序”;
$result=$db->query($sql);
如果($结果){
而($row=$result->fetch(PDO::fetch_ASSOC)){
回显“
  • ”.$row[“name]”。
  • ; } } ?>
    供参考,如果您需要解析返回的sql

    我为它实现了一个sqlite表解析器:


    fetchArray()方法的作用是什么?用于获取查询结果并将其放入数字或关联数组(或两者)的标准SQLite3方法。类似于mysql_fetch_数组的方式。那么,在一个数值数组或关联数组中应该提取多少条记录?->fetch似乎不是对未定义方法SQLite3Result::fetch()的SQLite3调用中的方法是的,这是我的错。fetch()是在类SQLITEDABASE中定义的,但不是在您正在使用的SQLite3中定义的。
    <?php
       $db = new SQLite3('db/chinhook.db');
       $tablesquery = $db->query("SELECT sql FROM sqlite_master WHERE name='foo'");
       $table = $tablesquery->fetchArray();
       echo '<pre>'.$table['sql'] . '</pre>';
       $db->close();
    ?>
    
    $db  = new PDO('sqlite:Northwind.db');
    
    $sql = "SELECT  `name` FROM sqlite_master WHERE `type`='table'  ORDER BY name";
      $result = $db->query($sql);
          if($result){
            while($row = $result->fetch(PDO::FETCH_ASSOC)){
              echo '<li>'.$row['name'].'</li>';
            }
        }
    
    
    ?>