我试图在我的数据库中显示表的名称。我写这段代码:
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;
}
它只给我最后一张桌子?
答案 0 :(得分:0)
对于没有参数的简单查询和SQL硬编码,您可以使用将连接和SQL传递给函数的泛型函数。 以下function()返回一个包含结果集中所有行的数组。
function queryAll($db,$query){
$sth = $db->query($query);
$result = $sth->fetchAll(PDO::FETCH_NUM);
return $result;
}
对于没有参数的简单查询和SQL硬编码,您可以使用将连接和SQL传递给函数的泛型函数。 以下function()返回一个包含结果集中所有行的数组。
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);
答案 1 :(得分:-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;
}
答案 2 :(得分:-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;
}
`
我希望它能奏效...... 这里你的数组每次都会被覆盖......这就是你得到最后一个表名的原因....所以你需要追加现有的数组......