拥有一个带有子类的 PHP 工厂,可以查询数据库中的一个或多个不相关的表。该类将表名作为参数并返回一个数组对象。
当需要多个表时,我想要一种将每个表结果集分隔到自己的数组中的方法。然后该类将返回一个多维数组。
我宁愿不实例化工厂的另一个实例。这是当前查询/结果代码块。为简洁起见,我省略了所有其他非必要的代码
// if array has more than one table to query,
// run queries on each table
$count = count($tname);
if ($count>1) {
foreach ($tname as $value) { //each table name in array
/* $query = "SELECT s.* FROM $value s"; tried with table alias */
$query = "SELECT * FROM $value";
if ($stmt = self::$_conn->prepare($query)) {
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$result[] = $row;
}
} else {
return false;
}
}
return $result;
// else if only one table to query
} else {
$string = $tname; //table name
$query = "SELECT * FROM $string";
if ($stmt = self::$_conn->prepare($query)) {
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$result[] = $row;
}
return $result;
} else {
return false;
}
}
使用多个表,将返回如下内容:
Array
(
[0] => Array
(
[team_id] => 3
[team_name] => Maverics
)
[1] => Array
(
[team_id] => 4
[team_name] => Stallions
)
[3] => Array
(
[fld_id] => 1
[fld_name] => 6v6-1
)
[4] => Array
(
[fld_id] => 2
[fld_name] => 8v8-2
)
)
其中 0,1 来自一个表,3,4 来自另一个表。
先感谢您