我正在尝试将PDO用于SELECT选项,这是我的functions.php代码:

<?php
    class Benefits
    {
        public function fetch_all()
        {
            global $pdo;

            $benfitssql = $pdo->query('SELECT * FROM lkup_benefits');
            //$benfitssql->execute();

            while ($row = $benfitssql->fetch(PDO::FETCH_ASSOC))
            {
                $ops.= "<option value='" . $row['BenefitOption'] . "'>"
                    . $row['Benfits'] . "</option>";
            }
        }
    }
?>


这是我的主页:

<label>Benefit Type</label>

<select class="select2_category form-control" data-placeholder="Choose a Category" tabindex="1" id="benefittype" name="benefittype">
    <?php echo $ops; ?>
</select>


当我选择SELECT选项时,它没有任何记录地打开,为什么会这样,我错过了什么?

最佳答案

您的代码有两个基本缺陷

首先,永远不要在函数内部格式化HTML,
其次,您应该从函数中返回一些信息

class Benefits {
    public function fetch_all() {
        global $pdo;
        return $pdo->query('SELECT * FROM lkup_benefits') ->fetchAll();
    }
}
?>
<label>Benefit Type</label>
<select class="select2_category form-control" data-placeholder="Choose a Category" tabindex="1" id="benefittype" name="benefittype">
<?php foreach ($benefits->fetch_all() as $row): ?>
    <option value="<?=$row['BenefitOption']?>"><?=$row['Benfits']?></option>
<?php endforeach ?>
</select>

08-03 20:20