【发布时间】:2013-02-05 08:34:24
【问题描述】:
一般错误:2014 无法执行查询,而其他无缓冲 查询处于活动状态。考虑使用 PDOStatement::fetchAll()。 或者,如果您的代码只针对 mysql 运行, 您可以通过设置启用查询缓冲 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性。
我的代码:- 创建一个选择标签并用数据库中的记录填充它
<?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 之外寻找答案。请指教 谢谢 克莱门特
【问题讨论】:
-
call listmfg_codes()到底是什么?? -
它是mysql过程,由该脚本调用以执行-“select distinct(mfg_code) from test;”