首页 文章

PDO - fetchAll语法不起作用

提问于
浏览
0

常规错误:2014在其他未缓冲的查询处于活动状态时无法执行查询 . 考虑使用PDOStatement :: fetchAll() . 或者,如果您的代码只是针对mysql运行,则可以通过设置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲 .

我的代码: - 创建一个select标签,并用数据库中的记录填充它

<?php
    echo "<select name='test'>";
    $call = $dbh->prepare('call listmfg_codes()');
    $call->execute();
    $result = $call->fetchALL(PDO::FETCH_COLUMN, 0);
    foreach($result as $row)
    {
?>      
    <option value="<?php echo $row['mfg_code'];?>"><?php echo $row['mfg_code'];?>      </option>";
<?php       
}
echo "</select>"; 
?>

它似乎不起作用 . 请指教 . 谢谢


然后我尝试再次修改脚本,以便适应closeCurosr()和fetchAll() . 它仍然无效

<?php
....
$stmt_call -> closeCursor();

echo "<select name='test'>";
$stmt_call = $dbh->prepare('call listmfg_codes()');
$stmt_call->execute();
foreach ($stmt_call -> fetchAll() as $row)
{
?>
<option value="<?php echo $row['mfg_code'];?>"> <?php echo $row['mfg_code'];?> </option>";
<?php       
}
echo "</select>";
?>

即使包含fetchAll()和closeCursor(),也会出现同样的错误 .

我仍然在stachOverFlow之外寻找答案 . 请告知谢谢Clement

1 回答

  • 0

    以下代码适用于我 .

    <?php
        echo "<select name='test'>";
       $call = $dbh->prepare("SELECT DISTINCT(mfg_code) FROM test");
        $call->execute();
        $result = $call->fetchALL(PDO::FETCH_COLUMN, 0);
        foreach($result as $row)
        {
    ?>      
        <option value="<?php echo $row['mfg_code'];?>"><?php echo $row['mfg_code'];?>      </option>";
    <?php       
    }
    echo "</select>"; 
    }
    
    ?>
    

相关问题