PHP Mysql PDO查询来自foreach存储的多个值以供输出

Posted

技术标签:

【中文标题】PHP Mysql PDO查询来自foreach存储的多个值以供输出【英文标题】:PHP Mysql PDO query from foreach multiple values stored for output 【发布时间】:2015-08-18 02:53:42 【问题描述】:

今天我一直在搜索如何存储查询中的不同值,该查询被注入了 4 次不同类别。结果正如我想要的那样,我得到了这些值,但是当我返回它们时,我只得到最后一个查询作为结果。 我想知道这个问题的好结果是什么

public function setMaxId() 
        $categorys = $this->getCategorys();
        foreach ($categorys as $category) 
            $sth = $this->conn->prepare("SELECT MAX(data_id) FROM bcc_data WHERE data_category =  '" . $category['bcc_data_category_name'] . "'");
            $sth->execute();
            $id = $sth->fetchAll();         
            $maxId = $id[0]['MAX(data_id)'];
            var_dump($maxId);
        
    

Var_dump:

string '22' (length=2)

string '35' (length=2)

string '34' (length=2)

string '29' (length=2)

【问题讨论】:

【参考方案1】:

看起来你每次在循环中都覆盖了最大 id,如果你想全部返回它们,它会是这样的:

$maxIds = [];
foreach ($categorys as $category) 
    $sth = $this->conn->prepare("SELECT MAX(data_id) FROM bcc_data WHERE data_category =  '" . $category['bcc_data_category_name'] . "'");
    $sth->execute();
    $id = $sth->fetchAll();         
    $maxIds[] = $id[0]['MAX(data_id)'];

return $maxIds; //or return max($maxIds) if you just want the single max

【讨论】:

效果很好,它们现在返回一个值,我可以单独调用它们。谢谢

以上是关于PHP Mysql PDO查询来自foreach存储的多个值以供输出的主要内容,如果未能解决你的问题,请参考以下文章

PDO 查询未在 PHP foreach 循环中返回结果

php pdo foreach

带有 foreach 和 fetch 的 PHP PDO

PHP/PDO/MySQL:将多个查询转换为单个查询

php和mysql pdo查询

php PDO 和 mysql:如何插入地理点类型?