从PDO函数返回值

时间:2014-07-13 12:31:37

标签: php pdo

我在附带的文件中有这个功能

function ListModules() {
try {
        global $DBH;
        $ListModules->query("SELECT * FROM modules");
        $ListModules->execute();
        return $ListModules->fetchAll();
    } catch (PDOException $e) {
    file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}  }

然后我试图将它们回显到这样一个下拉框中:

echo "<select name='deletelist' class='form-control'>
        <option value='0'>Choose a module to delete</option>";
        while($modulelist = ListModules()) {
            echo "<option value='".$moduelist['id']."'>".$modulelist['name']."</option>";
        }
    echo "</select>";

我做错了什么?

2 个答案:

答案 0 :(得分:0)

嗯,那是因为你的函数返回某种数组,所以你的循环相当于:

while ($modulelist = array(1, 2, 3)) {

这基本上意味着它永远都是真的。

您可能想要的是foreach循环。

答案 1 :(得分:0)

ListModules()返回array

while($modulelist = ListModules()) 

等于

while(true)

必须循环一个数组,在你的情况下,最好使用foreach

$modulelist = ListModules();

echo "<select name='deletelist' class='form-control'>
    <option value='0'>Choose a module to delete</option>";

foreach( $modulelist as $module ){
     echo "<option value='".$module ['id']."'>".$module ['name']."</option>";
}

echo "</select>";