gpt4 book ai didi

php mysql - 从多个表中选择所有行然后保存为对象数组 (json)

转载 作者:行者123 更新时间:2023-11-29 00:08:29 25 4
gpt4 key购买 nike

我有这个,效果很好:

include '../sql.php';
$d = $_POST['forum'] or die('no forum name was given');
$p = new PDO('mysql:host=localhost; dbname=mydb; charset=utf8', $user, $pw);
$s = $p -> query('SELECT * FROM `_' . $d . '`');
echo json_encode($s -> fetchAll(PDO::FETCH_ASSOC));

在上面的例子中,$d 是一个字符串(我想从中获取所有结果的表的名称),我用它来获取该表的所有行并将其放入一个数组(作为一个对象)这样我就可以在客户端检索它。

该代码产生如下内容:

[{"id":"1", "name":"bob"}, {"id":"2", "name":"frank"}]

我想做的是使 $d 成为一个表名数组。然后像循环一样从所有这些表中检索所有行,或者简单地同时选择所有这些表并返回结果。

结果应该是这样的:

[
[{"id":"1", "name":"bob"}, {"id":"2", "name":"frank"}], //table 1
[{"id":"1", "color":"red"}, {"id":"2", "color":"blue"}], //table 2
[{"id":"1", "style":"conservative"}, {"id":"2", "style":"gothic"}], //table 3
]

我该怎么做?

最佳答案

尝试类似的东西:

include '../sql.php';
$d = $_POST['tables'] or die('no forum name was given');
$p = new PDO('mysql:host=localhost; dbname=mydb; charset=utf8', $user, $pw);

$ret = [];
foreach ($d as $t){
$s = $p->query('SELECT * FROM `_' . $t . '`');
$ret[$t] = $s -> fetchAll(PDO::FETCH_ASSOC);
}
echo json_encode($ret);

关于php mysql - 从多个表中选择所有行然后保存为对象数组 (json),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26391951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com