显示表格仅获取表格的姓氏

问题描述 投票:0回答:4

我正在尝试显示数据库中表的名称。我写了这段代码:

   function affiche_liste()
{   
$db=new PDO('mysql:host=localhost;dbname=testf','root','');
    $result = $db->query("SHOW TABLES");
       foreach($result->fetch(PDO::FETCH_NUM) as $data) {
            $tableList = $data[0];
        }
        return $tableList;
}

它只给我最后一张桌子?

mysql pdo
4个回答
0
投票

对于没有参数和 SQL 硬编码的简单查询,您可以使用通用函数将连接和 SQL 传递给函数。 以下函数 () 返回一个包含结果集中所有行的数组。

function queryAll($db,$query){  
    $sth = $db->query($query);
    $result = $sth->fetchAll(PDO::FETCH_NUM);
    return $result;
}

对于没有参数和 SQL 硬编码的简单查询,您可以使用通用函数将连接和 SQL 传递给函数。 以下函数 () 返回一个包含结果集中所有行的数组。

function queryAll($db,$query){  
    $sth = $db->query($query);
    $result = $sth->fetchAll(PDO::FETCH_NUM);
    return $result;
}

$db=new PDO('mysql:host=localhost;dbname=testf','root',''); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "SHOW TABLES";
$tables = queryAll($db,$query);
print_r($tables);   

0
投票
public function fetchFields(): ?array
{
  $row = $this->fetch();
  return $row ? array_values((array) $row) : 
  null;
}

使用这个小方法代替 fetchAll()。


-1
投票

每次循环结果时,都会覆盖变量

tableList
。相反,您需要附加到结果数组中。

function affiche_liste()
{   
    $db=new PDO('mysql:host=localhost;dbname=testf','root','');
    $result = $db->query("SHOW TABLES");
    $tableList = array();
    foreach($result->fetch(PDO::FETCH_NUM) as $data) {
        array_push($tableList, $data[0]);
    }
    return $tableList;
}

-1
投票

试试这个 `

function affiche_liste()
{$db=new PDO('mysql:host=localhost;dbname=testf','root','');
    $result = $db->query("SHOW TABLES");
       foreach($result->fetch(PDO::FETCH_NUM) as $data) {
            $tableList[] = $data[0];
        }
        return $tableList;
}

`

我希望它能起作用... 这里你的数组每次都会被过度认知...这就是你获得最后一个表名的原因...所以你需要附加到现有的数组...

© www.soinside.com 2019 - 2024. All rights reserved.