我有这个,效果很好:
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/